【问题标题】:WINSOCK Connection in C#C#中的WINSOCK连接
【发布时间】:2016-05-02 05:10:54
【问题描述】:

我正在使用 Visual Studio 2015 C# Windows 应用程序。我将 winsock 连接到 c# 应用程序以从服务器获取来电数据。 在这里,我清楚地解释了我为此做了什么。

将 WINSOCK 控件连接到我的表单

右键工具箱->选择项目

代码:

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。 请帮助我为什么它没有连接?为什么它给出了一些错误?有人帮我解决我的问题。

【问题讨论】:

  • 您是否有理由要使用该控件而不仅仅是常规 Socket?
  • @Anjana 谢谢你提出这个问题

标签: c# server connection winsock pbx


【解决方案1】:

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

最常见的原因:

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

2) 还有可能是防火墙的问题

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

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

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

【讨论】:

  • 数据属于那个 ip-10.0.0.68 和 port-514 的格式是什么?我的意思是日志文件或excel或表格?
  • @Pranav Patel hii 先生,我也有同样的问题,如果你知道请帮我解决。
  • @Karthi 和 Anjana 这真的取决于您的 PBX 系统是什么品牌/型号(西门子、Splicecom、阿尔卡特等...) - 他们通常提供某种形式的文档/协议描述等 -例如,Splicecom 有几个协议提供不同的信息,您可以访问这些信息以实现您所描述的内容。西门子和其他公司也存在类似的情况......对于某些供应商/型号,这些接口需要另外获得许可。
  • 所以如果没有一些有价值的信息,我帮不了你太多,是的,但如果你在逻辑上陷入困境,我会提供帮助
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2013-04-14
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多