求救!!Socket只能接受一次值、。
我的客户端上线能发送数据到客户端,可是第二次服务器就不能接收了。客户端是短连接。
客户端: 发送数据
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。。。实在是不明不白啊!求大神救命啊!