У меня есть клиент, который предоставил мне порт ssl url: port для отправки информации (строка, содержащая данные xml) на свой сервер. Я использовал для Putty (в режиме Telnet), чтобы успешно взаимодействовать с сервером, и получать ответ, но когда я использую следующий код никакой связи не сделаноОшибка связи сокета
outputmsg = string.Empty;
var m_socListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPHostEntry ipAddress = Dns.GetHostEntry("testurlhere");
var ip = new IPEndPoint(ipAddress.AddressList[0], 10121);
m_socListener.Connect(ip);
byte[] tosend = GetBytes(inputmsg);
byte[] buffer = new byte[1024];
m_socListener.Send(tosend); // doesnt sends data and returns immediately
m_socListener.Receive(buffer); // waits forever
m_socListener.Close();
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
static string GetString(byte[] bytes)
{
char[] chars = new char[bytes.Length/sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
return new string(chars);
}
Вопрос: Вы абсолютно уверены, что «ничего не отправлено на сервер»? Например, возможно, сервер ждет «\ n» (и вам не удалось отправить его в «inputmsg»). Существует много возможных сценариев. Определенно проверяйте ошибки на клиенте; определенно проверьте, что - если что угодно - вы получаете на сервере. И определенно проверьте наличие брандмауэров между ними. – paulsm4
Да, я проверил их журналы и ничего не нашел на сервере. – logeeks
Если ничто не отправляется на сервер, то, возможно, tosend не имеет в нем ничего. Если вы пытаетесь получить байты из строки, используйте [Encoding.GetBytes] (http://msdn.microsoft.com/en-us/library/system.text.encoding.getbytes.aspx) – 3aw5TZetdf