У меня есть аппаратное обеспечение, чем подключение к ноутбуку (серверу) в ad hoc Network.таймер сокета в программировании сокетов
Когда сервер отправляет данные в одиночку, он работает правильно. и клиент отправляет данные самостоятельно, также работает правильно.
, но когда сервер и клиент отправляют данные вместе, через какое-то время произойдет тайм-аут.
после 35 и иногда произойдет 33 тайм-аут пакета.
Я изменил скорость передачи оборудования, но он также отключается.
хотя аппаратное обеспечение поддерживает полный дуплекс.
после истечения таймаута, i ping hard ware и не на порте.
и проверьте порт на сервере, и он открыт.
как я могу это сделать?
byte[] bytes = new byte[512];
//try
//{
IPHostEntry ipHost = Dns.GetHostEntry("");
// Gets first IP address associated with a localhost
IPAddress add = ipHost.AddressList[3];
TcpListener tcpListener = new TcpListener(add, 6000);
tcpListener.Start();
TcpClient tcpClient = tcpListener.AcceptTcpClient();
NetworkStream stream = tcpClient.GetStream();
String data = null;
while (true)
{
int j = 0;
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
j = j + 1;
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
AddItem("j="+j+" Received:"+ data);
// Process the data sent by the client.
//data = data.ToUpper();
byte[] msg = System.Text.Encoding.ASCII.GetBytes("thanks");
// Send back a response.
stream.Write(msg, 0, msg.Length);
AddItem("Sent:"+"thanks");
}
// Shutdown and end connection
tcpClient.Close();
я изменил мою треску ниже: 'http://msdn.microsoft.com/en-us/library/fx6588te%28v=vs.110%29.aspx' , но не изменилась. – user3374618
Как я могу использовать разные потоки для чтения и записи в моей треске: while ((i = stream.Read (bytes, 0, bytes.Length))! = 0) { – user3374618