C# UDP 一对多通信丢包或延时问题 [问题点数:40分,结帖人lj22377]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:0
结帖率 75%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs12
本版专家分:469650
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第十
2013年 总版技术专家分年内排行榜第八
Blank
铜牌 2018年12月 总版技术专家分月排行榜第三
2018年11月 总版技术专家分月排行榜第三
2017年2月 总版技术专家分月排行榜第三
Blank
红花 2019年1月 .NET技术大版内专家分月排行榜第一
2018年12月 .NET技术大版内专家分月排行榜第一
2018年11月 .NET技术大版内专家分月排行榜第一
2018年10月 .NET技术大版内专家分月排行榜第一
2018年9月 .NET技术大版内专家分月排行榜第一
2018年7月 .NET技术大版内专家分月排行榜第一
2018年6月 .NET技术大版内专家分月排行榜第一
2018年1月 .NET技术大版内专家分月排行榜第一
2017年5月 .NET技术大版内专家分月排行榜第一
2017年4月 .NET技术大版内专家分月排行榜第一
2017年3月 .NET技术大版内专家分月排行榜第一
2017年2月 .NET技术大版内专家分月排行榜第一
2016年10月 .NET技术大版内专家分月排行榜第一
2016年8月 .NET技术大版内专家分月排行榜第一
2016年7月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2019年4月 .NET技术大版内专家分月排行榜第二
2019年3月 .NET技术大版内专家分月排行榜第二
2018年8月 .NET技术大版内专家分月排行榜第二
2018年4月 .NET技术大版内专家分月排行榜第二
2018年3月 .NET技术大版内专家分月排行榜第二
2017年12月 .NET技术大版内专家分月排行榜第二
2017年9月 .NET技术大版内专家分月排行榜第二
2017年7月 .NET技术大版内专家分月排行榜第二
2017年6月 .NET技术大版内专家分月排行榜第二
2016年12月 .NET技术大版内专家分月排行榜第二
2016年9月 .NET技术大版内专家分月排行榜第二
2016年6月 .NET技术大版内专家分月排行榜第二
2016年3月 .NET技术大版内专家分月排行榜第二
2016年1月 .NET技术大版内专家分月排行榜第二
2015年12月 .NET技术大版内专家分月排行榜第二
2015年2月 .NET技术大版内专家分月排行榜第二
2015年1月 .NET技术大版内专家分月排行榜第二
2014年11月 .NET技术大版内专家分月排行榜第二
2014年5月 .NET技术大版内专家分月排行榜第二
2014年4月 .NET技术大版内专家分月排行榜第二
2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
Bbs12
本版专家分:469650
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第十
2013年 总版技术专家分年内排行榜第八
Blank
铜牌 2018年12月 总版技术专家分月排行榜第三
2018年11月 总版技术专家分月排行榜第三
2017年2月 总版技术专家分月排行榜第三
Blank
红花 2019年1月 .NET技术大版内专家分月排行榜第一
2018年12月 .NET技术大版内专家分月排行榜第一
2018年11月 .NET技术大版内专家分月排行榜第一
2018年10月 .NET技术大版内专家分月排行榜第一
2018年9月 .NET技术大版内专家分月排行榜第一
2018年7月 .NET技术大版内专家分月排行榜第一
2018年6月 .NET技术大版内专家分月排行榜第一
2018年1月 .NET技术大版内专家分月排行榜第一
2017年5月 .NET技术大版内专家分月排行榜第一
2017年4月 .NET技术大版内专家分月排行榜第一
2017年3月 .NET技术大版内专家分月排行榜第一
2017年2月 .NET技术大版内专家分月排行榜第一
2016年10月 .NET技术大版内专家分月排行榜第一
2016年8月 .NET技术大版内专家分月排行榜第一
2016年7月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2019年4月 .NET技术大版内专家分月排行榜第二
2019年3月 .NET技术大版内专家分月排行榜第二
2018年8月 .NET技术大版内专家分月排行榜第二
2018年4月 .NET技术大版内专家分月排行榜第二
2018年3月 .NET技术大版内专家分月排行榜第二
2017年12月 .NET技术大版内专家分月排行榜第二
2017年9月 .NET技术大版内专家分月排行榜第二
2017年7月 .NET技术大版内专家分月排行榜第二
2017年6月 .NET技术大版内专家分月排行榜第二
2016年12月 .NET技术大版内专家分月排行榜第二
2016年9月 .NET技术大版内专家分月排行榜第二
2016年6月 .NET技术大版内专家分月排行榜第二
2016年3月 .NET技术大版内专家分月排行榜第二
2016年1月 .NET技术大版内专家分月排行榜第二
2015年12月 .NET技术大版内专家分月排行榜第二
2015年2月 .NET技术大版内专家分月排行榜第二
2015年1月 .NET技术大版内专家分月排行榜第二
2014年11月 .NET技术大版内专家分月排行榜第二
2014年5月 .NET技术大版内专家分月排行榜第二
2014年4月 .NET技术大版内专家分月排行榜第二
2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs6
本版专家分:5221
Bbs12
本版专家分:469650
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第十
2013年 总版技术专家分年内排行榜第八
Blank
铜牌 2018年12月 总版技术专家分月排行榜第三
2018年11月 总版技术专家分月排行榜第三
2017年2月 总版技术专家分月排行榜第三
Blank
红花 2019年1月 .NET技术大版内专家分月排行榜第一
2018年12月 .NET技术大版内专家分月排行榜第一
2018年11月 .NET技术大版内专家分月排行榜第一
2018年10月 .NET技术大版内专家分月排行榜第一
2018年9月 .NET技术大版内专家分月排行榜第一
2018年7月 .NET技术大版内专家分月排行榜第一
2018年6月 .NET技术大版内专家分月排行榜第一
2018年1月 .NET技术大版内专家分月排行榜第一
2017年5月 .NET技术大版内专家分月排行榜第一
2017年4月 .NET技术大版内专家分月排行榜第一
2017年3月 .NET技术大版内专家分月排行榜第一
2017年2月 .NET技术大版内专家分月排行榜第一
2016年10月 .NET技术大版内专家分月排行榜第一
2016年8月 .NET技术大版内专家分月排行榜第一
2016年7月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2019年4月 .NET技术大版内专家分月排行榜第二
2019年3月 .NET技术大版内专家分月排行榜第二
2018年8月 .NET技术大版内专家分月排行榜第二
2018年4月 .NET技术大版内专家分月排行榜第二
2018年3月 .NET技术大版内专家分月排行榜第二
2017年12月 .NET技术大版内专家分月排行榜第二
2017年9月 .NET技术大版内专家分月排行榜第二
2017年7月 .NET技术大版内专家分月排行榜第二
2017年6月 .NET技术大版内专家分月排行榜第二
2016年12月 .NET技术大版内专家分月排行榜第二
2016年9月 .NET技术大版内专家分月排行榜第二
2016年6月 .NET技术大版内专家分月排行榜第二
2016年3月 .NET技术大版内专家分月排行榜第二
2016年1月 .NET技术大版内专家分月排行榜第二
2015年12月 .NET技术大版内专家分月排行榜第二
2015年2月 .NET技术大版内专家分月排行榜第二
2015年1月 .NET技术大版内专家分月排行榜第二
2014年11月 .NET技术大版内专家分月排行榜第二
2014年5月 .NET技术大版内专家分月排行榜第二
2014年4月 .NET技术大版内专家分月排行榜第二
2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
Bbs12
本版专家分:469650
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第十
2013年 总版技术专家分年内排行榜第八
Blank
铜牌 2018年12月 总版技术专家分月排行榜第三
2018年11月 总版技术专家分月排行榜第三
2017年2月 总版技术专家分月排行榜第三
Blank
红花 2019年1月 .NET技术大版内专家分月排行榜第一
2018年12月 .NET技术大版内专家分月排行榜第一
2018年11月 .NET技术大版内专家分月排行榜第一
2018年10月 .NET技术大版内专家分月排行榜第一
2018年9月 .NET技术大版内专家分月排行榜第一
2018年7月 .NET技术大版内专家分月排行榜第一
2018年6月 .NET技术大版内专家分月排行榜第一
2018年1月 .NET技术大版内专家分月排行榜第一
2017年5月 .NET技术大版内专家分月排行榜第一
2017年4月 .NET技术大版内专家分月排行榜第一
2017年3月 .NET技术大版内专家分月排行榜第一
2017年2月 .NET技术大版内专家分月排行榜第一
2016年10月 .NET技术大版内专家分月排行榜第一
2016年8月 .NET技术大版内专家分月排行榜第一
2016年7月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2019年4月 .NET技术大版内专家分月排行榜第二
2019年3月 .NET技术大版内专家分月排行榜第二
2018年8月 .NET技术大版内专家分月排行榜第二
2018年4月 .NET技术大版内专家分月排行榜第二
2018年3月 .NET技术大版内专家分月排行榜第二
2017年12月 .NET技术大版内专家分月排行榜第二
2017年9月 .NET技术大版内专家分月排行榜第二
2017年7月 .NET技术大版内专家分月排行榜第二
2017年6月 .NET技术大版内专家分月排行榜第二
2016年12月 .NET技术大版内专家分月排行榜第二
2016年9月 .NET技术大版内专家分月排行榜第二
2016年6月 .NET技术大版内专家分月排行榜第二
2016年3月 .NET技术大版内专家分月排行榜第二
2016年1月 .NET技术大版内专家分月排行榜第二
2015年12月 .NET技术大版内专家分月排行榜第二
2015年2月 .NET技术大版内专家分月排行榜第二
2015年1月 .NET技术大版内专家分月排行榜第二
2014年11月 .NET技术大版内专家分月排行榜第二
2014年5月 .NET技术大版内专家分月排行榜第二
2014年4月 .NET技术大版内专家分月排行榜第二
2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs9
本版专家分:70050
版主
Blank
名人 2019年 荣获名人称号
Blank
状元 2018年总版新获得的技术专家分排名第一
Blank
进士 2017年 总版技术专家分年内排行榜第四
2014年 总版技术专家分年内排行榜第四
2013年 总版技术专家分年内排行榜第四
2012年 总版技术专家分年内排行榜第六
Blank
金牌 2018年3月 总版技术专家分月排行榜第一
2013年5月 总版技术专家分月排行榜第一
Bbs7
本版专家分:20077
Blank
黄花 2018年12月 .NET技术大版内专家分月排行榜第二
Blank
蓝花 2019年9月 .NET技术大版内专家分月排行榜第三
2018年7月 .NET技术大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs9
本版专家分:52144
Blank
黄花 2016年4月 .NET技术大版内专家分月排行榜第二
2016年2月 .NET技术大版内专家分月排行榜第二
Blank
蓝花 2017年3月 .NET技术大版内专家分月排行榜第三
2017年2月 .NET技术大版内专家分月排行榜第三
2016年9月 .NET技术大版内专家分月排行榜第三
2016年8月 .NET技术大版内专家分月排行榜第三
2016年7月 .NET技术大版内专家分月排行榜第三
2016年3月 .NET技术大版内专家分月排行榜第三
2016年1月 .NET技术大版内专家分月排行榜第三
2015年12月 .NET技术大版内专家分月排行榜第三
2015年11月 .NET技术大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs2
本版专家分:303
Bbs2
本版专家分:158
Bbs7
本版专家分:19221
Bbs1
本版专家分:0
UDP传输文件,通过网线直连,低速传输正常,高速传输丢包问题
用<em>UDP</em>传输视频文件,VC发送数据到安卓端,安卓端监听端口接收数据,采用网线直连,排除网络原因造成的<em>丢包</em>。当VC发送数据<em>延时</em>50ms(大概几百K每秒的速度发包),JAVA端能正确接收。可是不<em>延时</em>50ms发送时(大概2M/S的速度发包)JAVA端接收就出现<em>丢包</em>。JAVA开了两个线程,一个线程接收并放到缓冲队列,另一个线程从缓冲队列取出数据写入U盘。缓冲队列大小也比发送的文件要大,也不可能是缓冲队列不够大的<em>问题</em>。希望得到大神指点,代码如下: void CSendudpDlg::OnBUTTONSendfile() { SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN addSrv; CString str; CTypeChange myChang; unsigned char xbuf[4096]; int len; m_portdest=8899; m_serverIP="192.168.1.4"; HANDLE hfile; hfile=CreateFile("D:\\amy.mp4", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); addSrv.sin_addr.S_un.S_addr = inet_addr(m_serverIP); addSrv.sin_family = AF_INET; addSrv.sin_port = htons(m_portdest); DWORD dwstart,dwend,dwrate; DWORD file_len=19025412; int npack=file_len/4063; DWORD ret,lret; int num=0; while(npack--) { memset(&xbuf,0,sizeof(xbuf)); ret=ReadFile(hfile,xbuf,4063,&lret,NULL); if( lret == 0) { SetFilePointer(hfile,0,0,FILE_BEGIN); continue; } xbuf[1]=4077/256; //包头信息 xbuf[2]=4077%256; xbuf[3]=(num/256)/256; xbuf[4]=(num/256)%256; xbuf[7]=num%256; ::Sleep(50); sendto(sockClient,(char*)xbuf,4096,0,(SOCKADDR*)&addSrv,sizeof(SOCKADDR)); num++; } cprintf("end!!!!!!!\n"); closesocket(sockClient); } 安卓端: package com.example.util; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import java.util.Arrays; import android.os.Environment; import android.util.Log; import com.example.net.Invoker; /** * 封装了数据生产工厂,该工厂中提供了生产和消费方法 * * @author Jry * */ public class Factory { private int read_loc; private int write_loc; private int buffer_len; private int content_len; private int buffers_count; private byte[] buffers; private int[] flags; private File file = null; private String filePath = null; private RandomAccessFile raf = null; private static final String CRLF = "\r\n"; private DatagramSocket datagramSocket = null; private DatagramPacket dataPacket = null; private Object read_lock = new Object(); private Object write_lock = new Object(); private static Factory instance = null; private int last_pos; private int[][] loc_map = null; private Invoker invoker = null; public static Factory newInstance() { if (null == instance) { synchronized (Factory.class) { if (null == instance) { instance = new Factory(); } } } return instance; } private Factory() { initialize(); invoker = Invoker.getInstance(); } private void initialize() { last_pos = 0; read_loc = 0; write_loc = 0; buffer_len = 4096; content_len = 4063; buffers_count = 1024 * 10; flags = new int[buffers_count]; loc_map = new int[4063][256]; buffers = new byte[buffer_len * buffers_count]; Arrays.fill(flags, 0); for (int[] temp : loc_map) { Arrays.fill(temp, 0); } // 设置输出流 filePath = Environment.getExternalStorageDirectory().getPath() + "/video/test.mp4"; file = new File(filePath); if (file.exists()) { Log.i("123", "file has been existed !!!" + CRLF); if (file.delete()) { Log.i("123", "file has benn deleted!!!" + CRLF); } } try { if (file.createNewFile()) { Log.i("123", "成功创建新文件!!!" + CRLF); } } catch (IOException e2) { e2.printStackTrace(); } // 预分配文件所占的磁盘空间,磁盘中会创建一个指定大小的文件 try { raf = new RandomAccessFile(filePath, "rw"); raf.setLength(19025412); // 预分配 19025412 的文件空间 raf.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 设置socket的监听端口 try { datagramSocket = new DatagramSocket(8899); // datagramSocket.setSoTimeout(10000); Log.i("123", "datagramsocket start successed!!!"); } catch (SocketException e) { Log.i("123", "datagramsocket start failed!!!"); e.printStackTrace(); } } //计数当前总共收到了多少个数据包 private int j = 0; public void create() { while (flags[write_loc] == 1) { synchronized (read_lock) { try { read_lock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } byte[] buffer = new byte[buffer_len]; byte[] receiveByte = new byte[buffer_len]; dataPacket = new DatagramPacket(receiveByte, buffer_len); try { datagramSocket.receive(dataPacket); Log.i("123", "收到了数据包 !!!" + " dataPacket.getLength() ==" + dataPacket.getLength()); int len = dataPacket.getLength(); if (len == buffer_len) { buffer = dataPacket.getData(); System.arraycopy(buffer, 0, buffers, write_loc * buffer_len, buffer_len); Log.i("123", "写入缓存数据的长度------" + len + "------" + write_loc + CRLF); Log.i("123", "当前受到包的数据包的数量是------" + (++j) + CRLF); flags[write_loc] = 1; write_loc = (write_loc + 1) % buffers_count; synchronized (read_lock) { read_lock.notifyAll(); } } } catch (IOException e) { e.printStackTrace(); } } public void consume() { while (flags[read_loc] == 1) { try { raf = new RandomAccessFile(filePath, "rw"); int start_loc = buffer_len * read_loc; /* int offset = i*buffer_len; raf.seek(offset); raf.write(buffers, start_loc, buffer_len); Log.i("123", "写入文件数据的长度*****************" + buffer_len +"read_loc == " + read_loc+CRLF); */ int section = (buffers[start_loc + 7] & 0x0FF); int module = (buffers[start_loc + 3] & 0x0FF) * 256 + (buffers[start_loc + 4] & 0x0FF); int len = (buffers[start_loc + 1] & 0x0FF) * 256 + (buffers[start_loc + 2] & 0x0FF); int cur_pos = module * 256 + section; Log.i("123", "module == " + module + ", section == " + section + ", len == " + len + CRLF); if (loc_map[module][section] == 0) { // 补包的代码 // if (!((last_pos + 1) == cur_pos)) { // int gap = cur_pos - last_pos - 1; // for (int i = 0; i < gap; i++) { // Command command = new // ConcreteCommand(<em>UDP</em>Sender.getInstance()); // command.setOrderNum(++last_pos); // invoker.addCommand(command); // } // invoker.executeCommand(); // } loc_map[module][section] = 1; // 表示该包号的包已经接收 raf.seek(cur_pos * content_len); raf.write(buffers, start_loc + 13, len - 14); last_pos = cur_pos; Log.i("123", "写入文件数据的长度*****************" + (len - 14) + "*******" + read_loc + CRLF); } flags[read_loc] = 0; read_loc = (read_loc + 1) % buffers_count; synchronized (write_lock) { write_lock.notifyAll(); } } catch (IOException e) { e.printStackTrace(); } finally { try { raf.close(); } catch (IOException e) { e.printStackTrace(); } } } synchronized (read_lock) { try { read_lock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } }
UDP大批量传输数据时的丢包问题优化
最近在研究linux下的<em>UDP</em>的传输,但是由于<em>UDP</em>协议本身的一些原因,在数据量非常大的时候会造成一定数量的<em>丢包</em>,数量越大,<em>丢包</em>率越高. 为了解决<em>丢包</em>这个<em>问题</em>,我从网上查到了一些资料,大致可以从三个方面来解决这个<em>问题</em>. 1. 从发送端解决(推荐) 适用条件: ①发送端是可以控制的.②微秒数量级的延迟可以接受. 解决方法:发送时使用usleep(1)延迟1微秒发送,即发送频率不要过快,延迟1
UDP传输与高延时的实现方式选择
本文仅写给实际编码的程序员. 并不是写给架构师与理论家的.<em>UDP</em>传输每次的数据不能太大只能假如要实现大带宽数据传输,每秒需要发:10M / 1500 = 6991次.每毫秒7次, 不计算重发量(就算是100%传输成功).  <em>问题</em>一: 有关毫秒<em>延时</em>如何达到?方案1. 老是去取cpu时钟,可以达到极高效的<em>延时</em>,但cpu占用率100%这是不可取的.方案2.
科普:QUIC协议原理分析
作者|罗成编辑|小智本文主要介绍 QUIC 协议产生的背景和核心特性。写在前面 如果你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度。特别是弱网络的时候能够提升 20% 以上的访问速度。如果你的 App,在频繁切换 4G 和 WIFI 网络的情况下,不会断线,不需要重连,用户无任何感知。如果你的 App,既需要 TLS 的安全,也想实现 HTTP2 多路复用的强大。如果你刚刚...
用udp实现断点续传,采用滑动窗口,延时重发的思路
使用udp应该会比tcp快一些,但是既然要<em>延时</em>重发,也就是要保证连接可 靠性;既然要可靠,不如干脆用tcp得了,tcp在传输层实现了滑动窗口和流量及拥塞控制,直接用serverSock et 编程简单
socket编程(2)—— 一对多通信
1 一对多模型,TCP的编程步骤服务端: 1、socket()获得一个sockfd。注意第二个参数必须SOCK_STREAM. 2、准备<em>通信</em>地址(必须服务器的) 3、bind()绑定。(开放了端口,允许客户端连接) 4、监听客户端 listen()函数 5、等待客户端的连接 accept(),返回用于交互的socket描述符 6、使用第5步返回sockt描述符,进行读写<em>通信</em>。 7、关闭
c# socket udp实现一对多的问题
请教一个<em>问题</em>,在用c#socekt写通讯时 ,实现一台服务器与多个客户机通讯,如何选择要通讯的客户机,并实现交互过程
C#UDP通讯
namespace <em>UDP</em>Server { class Program { static void Main(string[] args) { int recv; byte[] data = new byte[1024]; //构建TCP 服务器 /
SOCKET客户端与服务端长时间通信后,会连接不上服务端的问题,以及server端UDP丢包问题
人生第一篇博客,希望能以一个好的开始,chizhi
C#udp发送接收问题
我现在的一个项目,是用<em>C#</em><em>UDP</em>写的,我是主端,要求为了维持<em>通信</em>,我先发0给下位机。如果下位机收到,则回0给我,然后就这样从1一直发到255,即我发1,如果对方收到1,则再回给我1,然后我继续发2,一
C#写的一个UDP的Socket程序,传送多个图片数据,正常显示了几个图片后就报错:一个在数据报套接字上发送的消息大于内部消息缓冲器或其他一些网络限制,或该用户用于接收数据报的缓冲器比数据报小。
错误提示: 未处理的“System.Net.Sockets.SocketException”类型的异常出现在 system.dll 中。 其他信息: 一个在数据报套接字上发送的消息大于内部消息缓冲器或
C# UDP通信
最近刚搞完一个TCP<em>通信</em>的项目,但是发觉还是<em>UDP</em>+TCP的<em>通信</em>方式效率稳定性比较高。所以又看了看关于<em>UDP</em><em>通信</em>的内容, <em>UDP</em><em>通信</em>简介: http://www.csharpwin.com/csharpspace/13275r1253.shtml <em>UDP</em>将网络数据流量压缩成数据报的形式,每一个数据报用8个字节(8 X 8位=64位)描述报头信息,剩余字节包含具体的传输数据
C# UDP(Socket)异步传输文件
  用SCOKET 发送文件是一个不太好处理的<em>问题</em>,网上的例子也都是很简单的,我准备写一个比较完善的例子,这个就算是开始吧,以后的都会在这个例子的基础上进行修改,准备实现多线程传输、断点传输和文件传输的完备性检测。在这个例子中,分别定义了文件发送管理类(SendFileManager),文件接收管理类(ReceiveFileManager),文件发送类(UdpSendFile)和文件接收类
Socket UDP远程传输图片
Socket <em>UDP</em>远程传输图片:以Window系统为客户端,Ubuntu系统为服务端进行图片传输。 Window:客户端代码 #include #include #include #include using namespace std; #pragma comment(lib, "ws2_32.lib") #define Port 50001 // 服务器端口地址 #defi
C# UDP接收不同端口的数据报文
在unity中使用<em>UDP</em>进行数据的交互,建立C/S模式,两个客户端和一个服务端。两个客户端使用不同的端口往服务端发送数据,服务端根据收到的数据进行处理和判断,控制服务端的显示。 说明:两个客户端连接的是Kinect V2,需要将检测到的人体的数据信息发送到服务端进行系统数据的整体显示。指定的消息协议是ClientID|index|PosLeft|Left_S|PosRight|Right_S|A
C# Socket TCP发送图片与接收图片
发送端: FileStream fs = new FileStream(@&quot;7.jpg&quot;, FileMode.Open); private void SendImage() { //实例化socket Socket socket = new Socket(AddressFamily.Inte...
C#_Socket文件传输(视频、音频、图片、文本)
最近做了一个关于Socket的项目,我负责server和client对数据和图片的解析处理。 我放在我的个人网站了:http://psq.youthup.cn/wordpress/c_socket
C# Udp
方式一:<em>C#</em> Socket udp https://www.cnblogs.com/dj1232090/p/7608215.html 方式二:<em>C#</em> UdpClient udp 转载于:https://www.cnblogs.com/HansZimmer/p/9791125.html
c# 多个图片单独上传 保存到指定文件夹 保存到数据库
1.引用js文件 &lt;script src="~/Scripts/uploadPreview.js"&gt;&lt;/script&gt; &lt;html&gt; //toCalid()在表单提交之前进行非空验证   &lt;form action="/Home/insertImg" method="post" enctype="multipart/form-data" ons...
最简单的C#UDP通讯示例
参考:https://www.cnblogs.com/zxyc2000/articles/2846662.html  和  https://www.cnblogs.com/mq0036/p/7302605.html <em>UDP</em>应用不是严格意义上的真正的服务器和客户机,而是平等的关系,即没有server与client的关系。 IPv4中的广播(broadcast)可以导致网络性能的下降甚至广播风暴(...
一种基于WebRTC与UDP组播的一对多远程控制桌面的实现思路
苏格团队 作者:Jason 前言 笔者最近收到要求 远程控制局域网内多N台终端同步操作 的需求(功能类似windows上的远程桌面)。 最终笔者实现了一种不太成熟,不太稳定,但基本满足现阶段需求的方案,且未来会持续迭代。 出于种种复杂原因,笔者无法使用现在一些市面上很成熟的解决方案。但由于该项目仅限于内部人员使用,即对方案的成熟性,可靠性,可维护性没有太多要求(面部表情逐渐舒展)。 分析 ...
c# 服务端和多客户端通信
参考例子https://blog.csdn.net/u011602967/article/details/50728443 https://blog.csdn.net/Yujie_Yang/article/details/53647258
关于UDP多对多即时数据传输,求指点。
假想图: 说明: 1、#C代表照片发送的客户端机,#S代表接收的服务端机。 2、照片是广播方式实时传送的,所以必须得保证数据正确且不<em>丢包</em>。 预想: 1、采用<em>UDP</em>方式广播数据,数据结构里包含#C的机号
C#怎么实现用UDP进行多机通信
求助一下各位大佬,<em>C#</em>写代码控制两台甚至多台电脑<em>通信</em>怎么实现?一台主机,从机不限(2台吧)
C#使用UDP实现服务器与客户端通信
TCP 必须建立在连接才可以进行<em>通信</em>, <em>UDP</em>不需要建立<em>通信</em> 但两者都需要监听来接收消息 服务端 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System....
关于socket udp 数据包传输时间的问题
两台计算机型号和千兆以太网卡全部相同,其中一台计算机作为服务器端,另一台作为客户端,两者通过socket建立连接(udp连接),客户端单次向服务器端发送一百万数据包(每个数据包大小为1024字节),服务器端只接收不回应,则共耗时15秒左右,但若设置服务器端将每次接收到的数据包再原路传输回去,客户端发送一个数据包,再接收到一个数据包,则客户端发送一百万包的时间为650秒,请问两者的时间为什么相差这么大?
UDP 接收一段时间以后 就收不到数据了??
我用的是<em>UDP</em> 的阻塞模式,开了一个线程进行<em>UDP</em>数据的接收。 每次我都会接到客户端收过来的36字节的数据包,大概间隔1到5分钟收一次。 原本以为是小程序,就用了阻塞模式: char szRec;//
关于c# socket的问题(接收端Accept一直等待的问题)
我写了一个简单的收发讯息程序 服务器和客户端都是本机(不知道这样可不可以...) 画面Load进来的时候发送一个请求 然后点击一个按钮来收到刚才发送的请求 但是点击按钮后就一直等待,好像没有受到请求,
c# socket通信接收数据包长,不能完整接收的问题
需要用一个socket程序,向网站发送数据包同步接收返回数据包,当网站响应数据短的没有<em>问题</em>,响应数据长的接收不完整。通过抓包发现,响应数据长的超过10个包,但程序只接收了前8个包,超过8个包的后面都没
使用C#实现基于UDP通信 基本原理
使用Socket进行<em>通信</em>中,<em>UDP</em>是一种轻量级的无连接的<em>通信</em>协议。相对于TCP的安全可靠且又可以双工<em>通信</em>,<em>UDP</em>则更强调简单高效,而且利用<em>UDP</em>的无连接特性,我们可以穿透局域网,很多时候能够实现TCP无法实现的功能。 本文共分为三个部分: 第一部分 <em>UDP</em>的基本<em>通信</em>开始方法。 第二部分 <em>UDP</em>公网<em>通信</em>测试 第三部分 双局域网不利用第三方公共服务器实现直接<em>通信</em>。 这是第一部分。 全文主要的实现方法为...
测试udp的丢包和乱序
      udp服务端代码:#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;sys/socket.h&amp;gt; #include &amp;lt;netinet/in.h&amp;gt; #include &amp;lt;arpa/inet.h&amp;gt; #include &amp;lt;unistd...
C# UDP通信 大数据情况下丢包
用SOCKET <em>UDP</em><em>通信</em>写了个程序 但是在数据量很大的时候(信息收发速度加快、信息量大时)会出现<em>丢包</em>的情况,请大神帮忙看看程序 Socket udpServer; IPEndPoint server
UDP主要丢包原因及具体问题分析
文章来源:http://www.2cto.com/net/201311/254835.html   <em>UDP</em>主要<em>丢包</em>原因及具体<em>问题</em>分析   一、主要<em>丢包</em>原因   1、接收端处理时间过长导致<em>丢包</em>:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续...
Unity 与C#服务器 实现Socket的UDP通信(多客户端)
前言 上一篇简单的介绍了下Unity客户端和服务器的Socket<em>通信</em>,但是还不能实现多个客户端与服务器的<em>通信</em>,所以今天在这边把前面的工程完善一下(使用的是上篇讲到的UdpClient类来实现),实现多个客户端与服务器的udp<em>通信</em>。效果图如下,两个客户端可以向服务器发送消息,然后服务器每隔3秒给“连接上”的客户端发送收到的消息。 内容 思路上一篇已经讲到过了,我们定义两个特殊的字段,来告知...
C# 完整的UDP客户端代码 组播+单播 异步+同步
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Text.RegularExpressions; using System.Threading;namespace
基于udp的多播实现
关于多播的知识在下面的链接中;这里简要说一下函数部分 套接口选项 int setsockopt(int sockfd,int level,int optname,const void*optval.socklen_t optlen); level optname 说明 optval类型 TPPROTO_TP ...
C# UDP通信 操作大数据时 减少丢包的方法
Socket udpServer; IPEndPoint serverIP=new IPEndPoint(IPAddress.Parse(xxx.xx.x.xxx),9199); udpServer.
UDP发送延时
局域网内的两台机器A与机器B通过公网地址进行<em>UDP</em>通讯。 A的上行带宽限制为800kbps,B的下行带宽限制为400kbps; A向B每秒大约发送30个左右大小为1.4kB的数据包,且A的发送缓冲区设
C#UDP通讯组件,支持拆包组包,丢包重发
自己仿照某商业组件开发的通讯模块,简单的调用便可实现传文件,即时通讯等内容. 如图,只需要绑定ip便可以通讯 组件下载地址:点击打开链接 调用的方法: class Program { public static DataDispatcher dd; static void Main(string[] args)
UDP通信第一次接收数据时会有较长时间延时问题
第一次发帖求助大神,求各路大神支招,拜托!!! <em>问题</em>是这样的,我用<em>UDP</em><em>通信</em>,发送端周期性(1.2秒)向接收端发送数据,发送端启动发送数据后,接收端在第一次接收到数据前会有几十秒的<em>延时</em>,并且第一次接收
急急急!C#接收UDP数据包如何加一个缓存机制减少丢包
现需要做一个接收<em>UDP</em>数据包的程序,然后将数据包写成文件,数据包不大,但是量很大,需要有缓存机制,不知道具体如何实现缓存机制,求大神指导!!!
udp 广播 和 多播
使用<em>UDP</em>协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收...
c# UDP Socket
    public class <em>UDP</em>Socket { private Socket _client; private string _remoteHost; private int _remotePort; private IPEndPoint _remoteEP; private int _...
求TCP和UDP延时问题
在只知道TCP和<em>UDP</em>的地址和端口 有办法测试出他们的<em>延时</em>么? ICMP已经被禁止了。。
UDP多播和单播的问题
最近在做有关udp多播,碰到个<em>问题</em>。 一般来说我们使用<em>UDP</em>单播,Bind到一个端口,然后可以接受到其他机器发送来的数据。 但是多播的情况下,比如A,B,C 3台机器加入到同一个Group中地址是IP
udp协议多对一的实现
怎么实现udp协议的多对一传输,就是多个客户端传给一个服务器,服务器接收怎么接受,那么多不同的ip,怎么办?要不停的换不同的ip吗?有什么解决方案
C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
<em>C#</em> codenamespace <em>UDP</em>Server{    class Program    {        static void Main(string[] args)        {            int recv;            byte[] data = new byte[1024];             //构建TCP 服务
UDP丢包原因
<em>UDP</em><em>丢包</em>原因   一、主要<em>丢包</em>原因   1、接收端处理时间过长导致<em>丢包</em>:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。   2、发送的包巨大<em>丢包</em>:虽然send方法会帮你做大包切割成小包发送的事情,但包太
关于C#网络丢包情况的处理
目前在用SocketAsyncEventArgs这个进行TCP测试,我想问下,如果出现<em>丢包</em>的情况,是系统或者是网络硬件直接处理<em>丢包</em>的<em>问题</em>(自动重发) 还是需要自己在<em>C#</em>代码里处理<em>丢包</em>的<em>问题</em>? 操作系统
c# udp 怎么计算丢包
公司要我做一个<em>UDP</em>测试工具,暂时的功能是计算<em>丢包</em>数和错包数,错包数写出来了,但是<em>丢包</em>数怎么计算,有没有大神指导, 注:是c#的udp
linux 丢包问题
测试系统在Linux上的性能发现<em>丢包</em>率极为严重,发210000条数据,<em>丢包</em>达110000之巨,<em>丢包</em>率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况: sysctl -a |grep net.core 发现 net.core.rmem_max = 131071 net.core.rmem_defa
UDP socket缓冲区的理解
对<em>UDP</em> socket缓冲区的理解      <em>UDP</em>套接字的收发报文要用sendto 和 recvfrom,可以类比TCP套接字的connect和accept,参数里面会标识要发往的对端,或者要接收的对端的IP地址和端口;对<em>UDP</em>套接字connect的行为也只是告诉内核:“帮我做个过滤,我只关心这个对端的报文”,已连接的<em>UDP</em>套接字上可以利用read, write, recv, se
如何有效清空udp socket的缓存
recvfrom 之前先清空这个连接之前的所有客户端sandto发过来的数据。不能用先recvfrom然后丢掉的办法,因为不知道客户端什么时候再次sendto数据。有没有什么函数能够之间清空缓存的?
C#实现UDP的可靠传输
在网上看了很多材料。都说做标记啦,或者在包头加个字节长度啦。之类的很多。叫我说我也能说出一大堆。 可在具体实现上!真不知道从哪入手。 请高手们指导一下小弟。最好是有源码,或者留下QQ.我QQ:3042
ping命令使用的是tcp报文还是udp报文? Icmp属于tcp吗?
有没有确切的说法?.....
hping - 使用 TCP/UDP ping 解决防火墙拦截 ICMP ping
使用场景暴露在外网环境的服务通常会只对白名单内的来源机器开放服务使用的端口,比如 B 机器只对 A 机器开放 TCP 8999 端口,这样会导致 A ping B 收不到回包,无法查看 TTL 与<em>丢包</em>率。 hping 能指定 IP/ICMP/TCP/<em>UDP</em> 进行 ping, 对于上述场景,使用 hping 的 TCP 模式即可解决。 hping 支持的模式 # hping --helpMode
C# UDPClient类(通过UdpClient类实现局域网UDP通讯)
1、<em>UDP</em>(User Data Protocol,用户数据报协议) (1) <em>UDP</em>是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,<em>UDP</em>传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,<em>UDP</em>把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 (2) 由于传输数据
几个UDP通信的网络游戏延迟故障的排查及疑问
************************* 一. 故障发现及症状 ************************** -----------先是在玩卡丁车时发现的----------- A.
UDP发送速度快,接收端,接收不过来
请教下, UDP发送过快,接收端接收时<em>丢包</em> 发送端发送实时编码的流数据,接收端接收时<em>丢包</em> 有什么好的办法解决?
为什么UDP有时比TCP更有优势
随着网络技术飞速发展,网速已不再是传输的瓶颈,<em>UDP</em>协议以其简单、传输快的优势,在越来越多场景下取代了TCP,如网页浏览、流媒体、实时游戏、物联网。 1,网速的提升给<em>UDP</em>稳定性提供可靠网络保障 CDN服务商Akamai(NASDAQ: AKAM)报告从2008年到2015年7年时间,各个国家网络平均速率由1.5Mbps提升为5.1Mbps,网速提升近4倍。网络环境变好,网络传
UDP的”连接性”说起–告知你不为人知的UDP
从<em>UDP</em>的”连接性”说起–告知你不为人知的<em>UDP</em>
UDP通信在NAT(NAPT/内网穿透)中Session保持实现与效果测试
在网络开发中,常常使用<em>UDP</em><em>通信</em>进行数据传输。随着路由的普及,NAT在<em>UDP</em>数据包回发形成了障碍。我们知道<em>UDP</em>协议是“无连接”的,既然有回发数据的需求,那么路由器就为了这种需求,开发了<em>UDP</em>映射保持。 1、朴素的<em>UDP</em>数据包发送与回发当电脑A向电脑B发送<em>UDP</em>数据的时候,电脑B可以直接向电脑A直接回发数据包。拓扑如下:在同一网段下,<em>通信</em>毫无障碍,可以任意发送数据。2、NAT(NAPT)下的网络发送
大神 C#如何用UDP发送接收图片,怎么分包组包????
从固定的文件中读取数据并通过<em>UDP</em>发送。 通过<em>UDP</em>协议发送来的数据,并在软件中进行绘图显示。 <em>UDP</em>数据包格式:帧ID+通道号+数据;帧ID为Uint16型(2Byte),通道号为Byte型(1By
UDP多播与广播的实践
原文在这里:http://blog.csdn.net/raoxuanxuan/article/details/20012931 最近项目的需要,了解了一下<em>UDP</em>多播与广播。 1. <em>UDP</em>多播 <em>UDP</em>多播是这样子的:老师要给班上学生通知消息,他要么一个个地给每个同学去说(这就是单播),要么他写在黑板上,每个同学进教室都可以看得见。后者就是多播,即说有一台主机(老师)往一个地址上(黑
C#实现UDP组播
[csharp] view plain copy print? using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;  using System.Net;  using System.Net.Sockets;  using System.Thr
UDP之多播/组播
什么是多播(组播)?为什么出现多播(组播)? 由上节课讲到的广播,可以知道:Server给局域网的交换机发送数据,无论连接到局域网的客户端想不想接收该数据,Server都会给客户端发送该数据。—&amp;amp;gt;进而造成客户端上数据的拥塞—&amp;amp;gt;因此引出了多播(组播):Server可以将数据包只发送给指定组内的客户端,而不发送给指定组外的客户端。 组播地址 IP地址 244.0.0.0~...
vb socket通信(TCP/UDP)一对一、多对一
利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (<em>UDP</em>)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 Timer 控件类似,WinSock 控件在运行时是不可见的。 可能的用途 创建收集用户信息的客户端应用程序,并将收集的信息发送到某中央服务器。   创建一个服务器应用程序,作为多个用户的数据的汇入点。
socket通信 UDP文件传输(多客户端)——附源码
程序需求: 程序分为server程序和client程序,通讯由client主动发起请求一个指定的文件,由server传文件给client。 一个server可以支持多个client<em>通信</em>。数据包要有校验机制。有<em>丢包</em>重传机制。支持断点续传。能正常处理各种异常现象。 实现过程       服务器        一、制定<em>UDP</em><em>通信</em>协议                设计一个<em>UDP</em>报头
UDP点对点通讯、广播通讯、多播通讯
IP地址的简介: IP地址是由32位二进制组成:网络号+主机号。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址分为A、B、C、D、E5类。常用的是B和C两类。 一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就
c# UDP 多线程 多客户端传输例子
包含一个服务端 和一个客户端 c#编写 <em>UDP</em> 多线程 套接字 传输
C#基于TCP&UDP实现服务器与多个客户端之间的通信(客户端之间直接通信,不靠服务器端转发消息)
一. 实验要求 1.Server支持多客户访问。 2.C与S之间使用TCP连接。 3.C与C之间直接<em>通信</em>(不是通过S传递)。 4.C与C之间直接<em>通信</em>既可以使用TCP,也可以使用<em>UDP</em>。 5.可以使用Socket,也可以使用TcpClient/UdpClient等。 二. 设计思路 1. 创建服务器端和客户端的主体框架:首先在服务器端的Windows窗体中添加5个Label控件,2个T
同一台计算机,多客户端竞争同一udp端口问题
目前的项目需要把c/s结构做一下调整。 原先一个client一台机器,现在想节约成本,变成两个client一台机器。(类似一台机器开两个QQ) 之前的tcp端口都好说,<em>问题</em>是udp端口(有接收数据的需
C# UDP通信中,一个服务器端,对应多个客户端问题
最近工作需要,需要用到<em>UDP</em>通,在网上找了点资料看了下。然后开始做。 做的是一个服务器端对应多个客户端。 在服务器端建立一个监听线程,监听某个端口,所有客户端都向这个端口发数据,情况分两种 第一种情况
udp服务器与多个客户端通信问题
我的udp服务器创建几个socket来与多个客户端进行<em>通信</em>?(一个?) 那么如果我recvfrom来不断接收客户端的数据,那么多个客户端有多个IP与端口 ,我的recvfrom的地址该应怎么写? 我现
C#网络编程,多个客户端连接服务器端并发送消息
最近学习进度到了<em>C#</em>网络编程,在学习这一章节的知识点,写了一些小demo。 此次发表的为服务器监听端口,和多个客户端连接,获取多个客户端发来的消息。 服务器端代码: using System.Net; using System.Net.Sockets; Static void  Main(string[] args){ Socket serverSocket=new  Sock
C# 建立UDP服务器并接收客户端数据
服务器端对象类库: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; using System.IO; namespace Ud
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个<em>问题</em>我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个<em>问题</em>,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
MapInfo使用详解下载
MapInfoProfessional是目前世界上最为完备、功能强大、全面而直观的桌面地图信息系统,为在Client/Server环境下解决问题提供了一种全新的方案。它复杂而深层次的可视化地理分析功能可以帮助用户在数据库中不同的数据之间建立关联,在同一个环境下显示,并迅速揭示数据之间的关系以及易被忽视的数据模式,从而作出快速有效的决策,提高运作效率,加强竞争能力。 相关下载链接:[url=//download.csdn.net/download/yongjiu1000/3548866?utm_source=bbsseo]//download.csdn.net/download/yongjiu1000/3548866?utm_source=bbsseo[/url]
Web前端黑客技术揭秘下载
Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等,这些都是研究前端安全的人必备的知识点。 相关下载链接:[url=//download.csdn.net/download/r115277/10546575?utm_source=bbsseo]//download.csdn.net/download/r115277/10546575?utm_source=bbsseo[/url]
《计算机网络》第四版 谢希仁 part3下载
《计算机网络》第四版 谢希仁 pdf 版本: 《计算机网络》第四版 谢希仁 part1 :http://download.csdn.net/source/1084655 《计算机网络》第四版 谢希仁 part2 :http://download.csdn.net/source/1084658 《计算机网络》第四版 谢希仁 part3 :http://download.csdn.net/source/1084663 相关下载链接:[url=//download.csdn.net/download/chaoticjoy/1084663?utm_source=bbsseo]//download.csdn.net/download/chaoticjoy/1084663?utm_source=bbsseo[/url]
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
我们是很有底线的