求救!!Socket只能接受一次值、。

lb880623 lb880623 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的客户端上线能发送数据到客户端,可是第二次服务器就不能接收了。客户端是短连接。

客户端: 发送数据
IPAddress IPs = IPAddress.Parse("127.0.0.1");
int Port = 2000;
IPEndPoint ipe = new IPEndPoint(IPs, Port);//把ip和端口转化为IPEndPoint实例
string mes = "Auditor" + "*" + Code + "*" + WorkNum + "*" + Str + "*" + ID + "*";

Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
client.BeginConnect(ipe, new AsyncCallback(Connect), client);
connectDone.WaitOne(); //连接完毕

byte[] sendDate = System.Text.Encoding.UTF8.GetBytes(mes);
client.BeginSend(sendDate, 0, sendDate.Length, 0,
new AsyncCallback(SendCallback), client);
sendDone.WaitOne(); //发送完毕

client.Shutdown(SocketShutdown.Both);
client.Close();


服务器端: Thread listenThread = new Thread(Listen);
listenThread.Start();

/// <summary>
/// 监听函数
/// </summary>
public void Listen()
{
try
{
//端口号
int port = 2000;
string host = "127.0.0.1";
IPAddress ip = IPAddress.Parse(host);
//初始化终结点实例
IPEndPoint localEP = new IPEndPoint(ip, port);
mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

try
{
while (true)
{
//绑定
mySocket.Bind(localEP);
//监听
mySocket.Listen(50);
//开始接受数据
mySocket.BeginAccept(new AsyncCallback(AcceptCallback), mySocket);
//接受已经完成
receiveDone.WaitOne();
mySocket.Shutdown(SocketShutdown.Both);
mySocket.Close();
}

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
我这是刚刚接触Socket。。。实在是不明不白啊!求大神救命啊!
...全文
评论 2
收藏 已收藏
分享
返回顶部
lb880623
C# 111,129 成员 642,538 内容