-3
我有這段代碼。我可以成功地從我的客戶端接收數據,但只有一次。在我收到數據一次後,如果客戶端試圖發送更多的服務器沒有收到它。誰能幫忙?C#套接字 - 如何保持套接字打開?
private void startListening()
{
TcpListener server = null;
try
{
server = new TcpListener(IPAddress.Parse("127.0.0.1"), 7079);
server.Start();
Byte[] bytes = new Byte[256];
String data = null;
//Enter listening loop
while (true)
{
addLog("Waiting for push.");
TcpClient client = server.AcceptTcpClient();
addLog("Push request received, accepted.");
data = null;
NetworkStream stream = client.GetStream();
int i;
//Loop to receive all data
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
//Translate data bytes to ASCII string
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
//Process data
data = data.ToUpper();
byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
//send response
stream.Write(msg, 0, msg.Length);
addLog("Received: '" + data + "'");
}
//End ALL Connections
client.Close();
server.Stop();
}
}
catch(SocketException e)
{
addLog("SocketException: " + e);
}
finally
{
//Stop listening for new clients
MessageBox.Show("Finished.");
}
}
保護您的產品!怎麼分享知識?怎麼樣拯救Karl-JohanSjögren時間他可能會浪費回答你的問題? – 2012-07-21 05:50:13
a)通過點擊「編輯」鏈接,您的原始代碼仍然可見。 b)StackOverflow上所有用戶生成的內容均獲得Creative Commons許可。 c)在這些情況下,建議創建一個最小可重現的示例 - 即刪除與該問題無關的任何代碼部分,確保問題仍然存在,然後發佈該代碼。 – 2012-07-21 06:13:45
對不起,你是對的。我重新添加了代碼:) – DannyF247 2012-07-21 07:30:05