C#中的WINSOCK连接
Posted
技术标签:
【中文标题】C#中的WINSOCK连接【英文标题】:WINSOCK Connection in C# 【发布时间】: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 谢谢你提出这个问题 【参考方案1】:问题出在服务器端,而不是客户端。
最常见的原因:
1) 服务器没有监听指定端口
2) 还有可能是防火墙的问题
检查您的服务器代码并确保它始终处于侦听模式。
很多程序员不允许服务器在启动时返回监听模式或根本不监听,这是编码中很常见的错误。
服务器应始终监听连接。当一个进来的服务器接受连接时,为该客户端打开一个新的套接字,而不是服务器的主套接字,它必须只用于侦听和建立连接,然后服务器必须返回侦听模式。
【讨论】:
数据属于那个 ip-10.0.0.68 和 port-514 的格式是什么?我的意思是日志文件或excel或表格? @Pranav Patel hii 先生,我也有同样的问题,如果你知道请帮我解决。 @Karthi 和 Anjana 这真的取决于您的 PBX 系统是什么品牌/型号(西门子、Splicecom、阿尔卡特等...) - 他们通常提供某种形式的文档/协议描述等 -例如,Splicecom 有几个协议提供不同的信息,您可以访问这些信息以实现您所描述的内容。西门子和其他公司也存在类似的情况......对于某些供应商/型号,这些接口需要另外获得许可。 所以如果没有一些有价值的信息,我帮不了你太多,是的,但如果你在逻辑上陷入困境,我会提供帮助以上是关于C#中的WINSOCK连接的主要内容,如果未能解决你的问题,请参考以下文章
如何检查客户端是不是通过 C++ 中的 Winsock 断开连接?
丢弃用于 TCP 连接的 winsock 内部缓冲区中的排队数据
Winsock - 为啥 ZNC(和 IRC 保镖)不接受我的 winsock 连接?