关于Socket里面udp连接的

tyg111 2010-06-11 05:52:03
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);
}
...全文
86 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jushi123456 2010-06-22
  • 打赏
  • 举报
回复
不错 呵呵


对我有用
tyg111 2010-06-22
  • 打赏
  • 举报
回复
谢谢了,问题已经解决了,是没有bind,所以没有收到请求,不过还是谢谢,虽然分不多
tyg111 2010-06-12
  • 打赏
  • 举报
回复
int recv = server.ReceiveFrom(data, ref Remote);//接受来自服务器的数据
是这里结束了,也没有报错
s8848 2010-06-11
  • 打赏
  • 举报
回复
输入可能有点不对。
皇城龙三 2010-06-11
  • 打赏
  • 举报
回复
if (input == "text")//结束标记


是到这个地方结束的么?有没有什么错误报出来?

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧