关于Socket里面udp连接的
byte[] data = new byte[1024];//定义一个数组用来做数据的缓冲区
string input, stringData;
string host="127.0.0.1";
IPAddress ip=IPAddress .Parse (host);
IPEndPoint ipep = new IPEndPoint(ip, 9050);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
string welcome = "Hello,are you there?";
data = Encoding.ASCII.GetBytes(welcome);
server.SendTo(data, data.Length, SocketFlags.None, ipep);//将数据发送到指定的终结点
IPEndPoint sender = new IPEndPoint(ip,0);
EndPoint Remote = (EndPoint)sender;
data = new byte[1024];
Console .WriteLine ("hello");
------------------------------------------
int recv = server.ReceiveFrom(data, ref Remote);//接受来自服务器的数据
----------------------------------------------------------------
Console.WriteLine("你好");
Console.WriteLine("Message received from{0}:", Remote.ToString());
Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
while (true)//读取数据
{
input = Console.ReadLine();//从键盘读取数据
if (input == "text")//结束标记
{
break;
}
server.SendTo(Encoding.ASCII.GetBytes(input), Remote);//将数据发送到指定的终结点Remote
data = new byte[1024];
recv = server.ReceiveFrom(data, ref Remote);//从Remote接受数据
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
Console.WriteLine("Stopping client");
server.Close();
这个是我借用的别人的代码,因为我才接触socket所以我不知道为什么到了我在上面标记的地方就执行不下去了上面的那个是客户端的,下面的是服务端的,错误是相同的,想找个高人给解决下,谢谢
int recv;
byte[] data = new byte[1024];
string host="127.0.0.1";
IPAddress ip=IPAddress .Parse (host);
IPEndPoint ipep = new IPEndPoint(ip, 9050);//定义一网络端点
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);//定义一个Socket
newsock.Bind(ipep);//Socket与本地的一个终结点相关联
Console.WriteLine("Waiting for a client..");
IPEndPoint sender = new IPEndPoint(ip, 0);//定义要发送的计算机的地址
Console.WriteLine ("你好");
EndPoint Remote = (EndPoint)(sender);//
recv = newsock.ReceiveFrom(data, ref Remote);//接受数据
Console.WriteLine("你好");
Console.WriteLine("Message received from{0}:", Remote.ToString());
Console.WriteLine(Encoding.ASCII.GetString (data, 0, recv));
string welcome = "Welcome to my test server!";
data = Encoding.ASCII.GetBytes(welcome);
newsock.SendTo(data, data.Length, SocketFlags.None, Remote);
while (true)
{
data = new byte[1024];
recv = newsock.ReceiveFrom(data, ref Remote);
Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
newsock.SendTo(data, recv, SocketFlags.None, Remote);
}