我在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。 请帮我,为什么它没有连接?为什么它会给出一些错误?有人帮我解决了我的问题。
答案 0 :(得分:0)
问题是服务器端,而不是客户端。
最常见的原因:
1)服务器没有侦听指定的端口
2)此外,可能存在防火墙问题
检查您的服务器代码并确保它始终处于聆听模式。
很多程序员不允许服务器在启动时返回监听模式或者根本不听,这是编码中常见的错误。
服务器应始终监听连接。当一个进入服务器接受连接时,为该客户端打开一个新的套接字,而不是服务器的主套接字,它必须仅用于监听和建立连接,然后服务器必须返回到监听模式。