У меня возникли проблемы с выяснением, почему я получаю только один ответ от серверного приложения, запущенного на моем компьютере (LocalHost). У меня нет источника для этого серверного приложения, но это Java-приложение. Сообщения, которые отправляются, представляют собой структуру xml и должны заканчиваться тегом EoT.C# гнездо. Только для получения первого сообщения
Связь:
- Клиент подключения к разъединить.
- Клиент отправляет сообщение серверу.
- Сервер отправляет сообщение, полученное клиенту.
- Клиент отправляет сообщение серверу.
- Сервер отправляет символ окончания передачи.
- Клиент отправляет сообщение серверу.
- Сервер отправляет символ окончания передачи.
Это как мой клиент подключения, отправлять и получать:
public bool ConnectSocket(string server, int port)
{
System.Net.IPHostEntry hostEntry = null;
try
{
// Get host related information.
hostEntry = System.Net.Dns.GetHostEntry(server);
}
catch (System.Exception ex)
{
return false;
}
// Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
// an exception that occurs when the host IP Address is not compatible with the address family
// (typical in the IPv6 case).
foreach (System.Net.IPAddress address in hostEntry.AddressList)
{
System.Net.IPEndPoint ipe = new System.Net.IPEndPoint(address, port);
System.Net.Sockets.Socket tempSocket = new System.Net.Sockets.Socket(ipe.AddressFamily, System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
tempSocket.Connect(ipe);
if (tempSocket.Connected)
{
m_pSocket = tempSocket;
m_pSocket.NoDelay = true;
return true;
}
else
continue;
}
return false;
}
}
public void Send(string message)
{
message += (char)4;//We add end of transmission character
m_pSocket.Send(m_Encoding.GetBytes(message.ToCharArray()));
}
private void Recive()
{
byte[] tByte = new byte[1024];
m_pSocket.Receive(tByte);
string recivemessage = (m_Encoding.GetString(tByte));
}