Socket有关问题
Socket问题
private static void SendMsg(string message)
{
message = message + "@";
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ip = ipHost.AddressList[0];
IPEndPoint remotePoint = new IPEndPoint(ip, 8088);
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
byte[] msgStream = Encoding.UTF8.GetBytes(message);
try
{
int bytesSend = sender.Send(msgStream);
}
catch(Exception e)
{
Console.WriteLine("发送失败:"+e.Message);
return;
}
byte[] buffer = new byte[1024];
string dataReceived = "";
try
{
while (true)
{
int bytesRead = sender.Receive(buffer);
dataReceived += Encoding.UTF8.GetString(buffer, 0, bytesRead);
if (dataReceived.IndexOf("@") > -1)
break;
}
}
catch (Exception e)
{
Console.WriteLine("获取响应失败:" + e.Message);
}
finally
{
sender.Shutdown(SocketShutdown.Both);
sender.Close();
}
Console.WriteLine("响应: " + dataReceived.Substring(0, dataReceived.IndexOf("@")));
}
总是报由于套接字没有连接并且(当使用一个 endto 调用大送数据报套接字时)没有提供地址...
------解决方案--------------------
检察一下8088端口有没有被占用,换个端口试试
------解决方案--------------------
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ip = ipHost.AddressList[0];
IPEndPoint remotePoint = new IPEndPoint(ip, 8088);
自己连接自己?
------解决方案--------------------
汗...Connect在哪?
sender.Connect(EndPoint);
------解决方案--------------------
sender.Connect(remotePoint);
还没连接怎么发送
private static void SendMsg(string message)
{
message = message + "@";
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ip = ipHost.AddressList[0];
IPEndPoint remotePoint = new IPEndPoint(ip, 8088);
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
byte[] msgStream = Encoding.UTF8.GetBytes(message);
try
{
int bytesSend = sender.Send(msgStream);
}
catch(Exception e)
{
Console.WriteLine("发送失败:"+e.Message);
return;
}
byte[] buffer = new byte[1024];
string dataReceived = "";
try
{
while (true)
{
int bytesRead = sender.Receive(buffer);
dataReceived += Encoding.UTF8.GetString(buffer, 0, bytesRead);
if (dataReceived.IndexOf("@") > -1)
break;
}
}
catch (Exception e)
{
Console.WriteLine("获取响应失败:" + e.Message);
}
finally
{
sender.Shutdown(SocketShutdown.Both);
sender.Close();
}
Console.WriteLine("响应: " + dataReceived.Substring(0, dataReceived.IndexOf("@")));
}
总是报由于套接字没有连接并且(当使用一个 endto 调用大送数据报套接字时)没有提供地址...
------解决方案--------------------
检察一下8088端口有没有被占用,换个端口试试
------解决方案--------------------
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ip = ipHost.AddressList[0];
IPEndPoint remotePoint = new IPEndPoint(ip, 8088);
自己连接自己?
------解决方案--------------------
汗...Connect在哪?
sender.Connect(EndPoint);
------解决方案--------------------
sender.Connect(remotePoint);
还没连接怎么发送