socket编程报错,请教!

kaizi_sun 2008-11-10 11:55:23
IPAddress ServerIp = GetServerIP();

IPEndPoint iep = new IPEndPoint(ServerIp, 8000);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Control.CheckForIllegalCrossThreadCalls = false;

socket.Bind(iep);

socket.Listen(1); // 这句报错。错误如下:

System.Net.Sockets.SocketException: The attempted operation is not supported for the type of object referenced
at System.Net.Sockets.Socket.Listen(Int32 backlog)
at SOCKET.Form1.ls() in C:\Documents and Settings\daniel\Desktop\c#学习笔记\c#网络编程\SOCKET\SOCKET\Form1.cs:line 63





如果
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);换成tcp的如下

socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);则不报错,请指教

...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu_2007 2008-11-10
  • 打赏
  • 举报
回复
对啊,UDP是无连接的,所以不需要监听!
zx005 2008-11-10
  • 打赏
  • 举报
回复
如果你是用的UDP的协议,不能调用listen
面向联接的才需要调用listen
zx005 2008-11-10
  • 打赏
  • 举报
回复
这儿有个例子
http://www.cnblogs.com/supercode/articles/159751.html
kaizi_sun 2008-11-10
  • 打赏
  • 举报
回复
想都实现一遍,增加自己的阅历下,有做过的给个例子学习下.
  • 打赏
  • 举报
回复
UDP貌似很麻烦还要自己加数据验证,用TCP简单
kaizi_sun 2008-11-10
  • 打赏
  • 举报
回复
那我把侦听去掉后也是会有问题的?udp和tcp两者socket编程很不一样么?能给个udp辕马么?

111,119

社区成员

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

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

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