读书人

Socket有关问题

发布时间: 2011-12-26 23:09:59 作者: rapoo

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);
还没连接怎么发送

读书人网 >Web Service

热点推荐