日期:2014-05-19  浏览次数:20793 次

C#-Socket通信如何实现?
最近做项目,需要用C#语言写个UDP的底层通讯的类。看了2本书,书上说的都好象简单了些。

后来请教了高手一些思路。3个线程:1-用来send数据包;2-用来receive数据包;3-用来判断超时。当数据包send出去后,就把包标识等等信息放到一个链接表中去,然后等候应答。如果1秒种后没收到应答就再send一次,连续3次没收到应答,就把该包从链接表中摘掉,返回一个消息;如果有receive到应答,就到链接表里去找对应的包,找到后返回消息,同时把包从链接表中摘掉。

知道思路,可是还是不知道应该怎么写。哪位高手有写过类似的通讯类。请发份到我邮箱:jacky962848@163.com                     万分感谢!!!!!!!


------解决方案--------------------
如果楼主普通英文过关,给你一个链接去看

http://www.java2s.com/Code/CSharp/Network/Udp-Client.htm
------解决方案--------------------
LZ 是要用UDP的Multicast 发包吗?如果是,可以看这个例子,我当初做Multicast 就是看的这个:

http://www.codeproject.com/cs/internet/multicast.asp


另外还有个Socket异步接收的例子,不知道是否有用,同一个网站上的:

http://www.codeproject.com/cs/internet/socketsincs.asp


E文文章,注册可下源代码.



------解决方案--------------------
去看看MSDN中的UDP协议通讯吧。不会难的

注意 服务端建立监听,监听到之后,抛出一个线程处理事件。
其他思路,你都说了。这边就不说了


------解决方案--------------------
jacky962848() 我做的思路和你的差不多,只是用类不一样,我是在服务端把要用的数据整理好,并等待接收客户端发来的某种特征码,当收到后就向客户端发送相应的数据,客户端只需要读取和显示就OK了!!!你加我QQ吧!25691