熟悉tcp消息通訊的高手請幫忙,關於組裝消息包的實踐 C#里面的Socket好像无法完全自定义数据包,程序会自动给数据加上一段包头建议用以他语言写好组件……再在程序里面调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C#里面有TcpClient对象,帮你封装好了TCP头,你只用专心写消息内容就行了。 這個包實際就是中国移动通信互联网短信网关接口协议,包頭是這協議要求的必須部分,而非tcp本身的那個包頭,請各位高手了解我想消息頭也好,消息體也好,封送的方法應該是一致的,我想讓大家幫忙看我那段封包的代碼是否正確,如果正確,用它封裝消息體也類似了,如果不對,那消息内容也是不對的 这种想法是可以实现的.无非是要自定义一种通讯接口协议.就是把你的包头,包体用一个类来实现.C#中的socket是以byte数组来发送数据的,所以你的这个类进行数据封装的时候,要把所有的数据类型转化成byte存进去,再发送.你定义了这种接口,在发送方和接收方都要调用这个接口来压包和解包.比如规定包头为12byte,4byte为Total_Length,4btye为Command_Id,4byte为Sequence_Id,分别取出4个byte到一个byte数组,再把这个数组进行转换,成uint(C#中的unsigned int)或者是取出一个uint转化成4个byte的数组再填到包头中.转化的函数当然要自己写.然后再根据包头中的包体长度数据来读取后面的byte,至于包体对应到什么结构,你自己应该是定义好的,再根据各种数据类型读出相应的byte数目到一个byte数组,再转化成需要的类型就可以了. 楼主,恐怕要自己写个tcpclient,tcplistener之类的东西 恩,如果赶时间完成任务也可以不用,看看这个能不能给你点感觉http://www.c-sharpcorner.com/network/ping.asp 我写过一个ping的程序(多线程),相信会对楼主有所帮助。要不要阿? 求DataGridViewComboBoxColumn在下拉时去掉当前的值 udpclient关闭后马上启动出错 vs2008制作安装包的疑问 一个简单的绘图问题 IE下某个页面Cookie失效 但其它的可以照常登录 在线等 微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型? 能导出3dsMax的灯光(光照)数据吗? 比较特殊的ListBox控件,我不知道怎么做,请帮忙,谢谢! C# 中操作SQLite,第一次插入数据成功,后面的命令无效,求帮忙看看 存储过程怎么更新? c#.net里面如何使用com接口,比如IDispatch? 将一个 中文 转为 uicode 的方法
我想消息頭也好,消息體也好,封送的方法應該是一致的,我想讓大家幫忙看我那段封包的代碼是否正確,如果正確,用它封裝消息體也類似了,如果不對,那消息内容也是不對的
C#中的socket是以byte数组来发送数据的,所以你的这个类进行数据封装的时候,要把所有的数据类型转化成byte存进去,再发送.
你定义了这种接口,在发送方和接收方都要调用这个接口来压包和解包.
比如规定包头为12byte,4byte为Total_Length,4btye为Command_Id,4byte为Sequence_Id,分别取出4个byte到一个byte数组,再把这个数组进行转换,成uint(C#中的unsigned int)或者是取出一个uint转化成4个byte的数组再填到包头中.转化的函数当然要自己写.
然后再根据包头中的包体长度数据来读取后面的byte,至于包体对应到什么结构,你自己应该是定义好的,再根据各种数据类型读出相应的byte数目到一个byte数组,再转化成需要的类型就可以了.
http://www.c-sharpcorner.com/network/ping.asp