bellow是我的服務器代碼,它運行成功,但小問題是,當我從客戶端發送數據兩次它接受一次。 例如如果我運行此服務器和客戶端也togethor;第一次它接受來自客戶端的數據,第二次當我再次ping從客戶端它不接受數據第三次當我從客戶端ping通它接受數據,第四次當我從客戶端ping它不接受數據,第五次當我從客戶端ping它接受數據,等..... 感謝您在高級。C#服務器socket編程
class Program
{
//static byte[] Buffer { get; set; }
//static Socket sck;
static void Main(string[] args)
{
while (true)
{
Socket sck;
sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sck.Bind(new IPEndPoint(0, 2000));
sck.Listen(10);
Socket accepted = sck.Accept();
byte [] Buffer = new byte[accepted.SendBufferSize];
int bytesRead = accepted.Receive(Buffer);
byte[] formatted = new byte[30];
for (int i = 0; i < 30; i++)
{
formatted[i] = Buffer[i];
}
string strData = Encoding.ASCII.GetString(formatted);
Console.Write(strData + "\r\n");
sck.Close();
accepted.Close();
}
}
}
對不起,我忘了提,我只需要只從客戶端接收我不想任何種類的信息發送到客戶端的數據。 – user1014212
第二次嘗試是否實際連接到套接字? Socket.Receive可能不會返回任何字節或足夠的字節,您應該檢查實際讀取的字節數的返回值。 – Matt
你有沒有嘗試過代碼,它究竟在哪裏失敗? – Matt