C#中的WINSOCK连接

时间:2016-05-02 05:10:54

标签: c# server connection winsock pbx

我在visual studio 2015 C#windows应用程序中工作。我将winsock连接到c#应用程序以从服务器获取传入呼叫数据。 在这里,我清楚地解释了我为此所做的一切。

将WINSOCK控件连接到我的表单

右键单击工具箱 - >选择项目

enter image description here

using System;
using System.Windows.Forms;

namespace CLIENT
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.w1.Error += new AxMSWinsockLib.DMSWinsockControlEvents_ErrorEventHandler(this.w1_Error);
            this.w1.ConnectEvent += new System.EventHandler(this.w1_ConnectEvent);
            this.w1.DataArrival += new AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEventHandler(this.w1_DataArrival);
        }
        Boolean isConnected = false;

        private void w1_ConnectionRequest(object sender, AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent e)
        {
            if (isConnected == true)
            {
                w1.Close();
            }
            w1.Accept(e.requestID);
            isConnected = true;
            DataInput.Text += "\n - Client Connected :" + w1.RemoteHostIP;
        }


        private void w1_ConnectEvent(object sender, EventArgs e)
        {
            DataInput.Text += "\n - Connect Event : " + w1.RemoteHostIP;
            isConnected = true;
        }

        private void w1_DataArrival(object sender, AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent e)
        {
            String data = "";
            Object dat = (object)data;
            w1.GetData(ref dat);
            data = (String)dat;
            DataInput.Text += "\nServer - " + w1.RemoteHostIP + " : " + data;
        }

        private void w1_Error(object sender, AxMSWinsockLib.DMSWinsockControlEvents_ErrorEvent e)
        {
            DataInput.Text += "\n- Error : " + e.description;
            isConnected = false;
        }

        private void Connect_Click(object sender, EventArgs e)
        {

            try
            {
                w1.Close();
                w1.Connect(IPText.Text, PortText.Text);
            }
            catch (System.Windows.Forms.AxHost.InvalidActiveXStateException g)
            {
                DataInput.Text += "\n" + g.ToString();
            }
        }

    }
}

我需要连接pbx服务器10.0.0.68。 请帮我,为什么它没有连接?为什么它会给出一些错误?有人帮我解决了我的问题。

1 个答案:

答案 0 :(得分:0)

问题是服务器端,而不是客户端。

最常见的原因:

1)服务器没有侦听指定的端口

2)此外,可能存在防火墙问题

检查您的服务器代码并确保它始终处于聆听模式。

很多程序员不允许服务器在启动时返回监听模式或者根本不听,这是编码中常见的错误。

服务器应始终监听连接。当一个进入服务器接受连接时,为该客户端打开一个新的套接字,而不是服务器的主套接字,它必须仅用于监听和建立连接,然后服务器必须返回到监听模式。