asp.net c#.net Tcp socket 接收数据代码

asp教程.net c#.net tcp socket 接收数据代码
 //监听网络
      

  public bool opennet(string sport)
       {
            processor = new thread(new threadstart(startlistening));//新建监听线程
            processor.priority = threadpriority.normal;
            processor.isbackground = true;
            processor.start();//线程开始
            return true;
        }
        private void startlistening()
        {
            //获取端口号
            string sport = m_inifile.inireadvalue("net", "tcpport");
            int iport = int.parse(sport);
            //
            m_blisten = false;
            //
            try
            {
                m_endpoint = new ipendpoint(ipaddress.any, iport);//组合将访问主机的ip地址和端口号。
                _svrsock = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);//实例化socket对象。
                _svrsock.bind(m_endpoint);//绑定将访问的主机。
                _svrsock.listen(50);//开始监听,最大包长50。

                //while循环接收
                while (true)
                {
                    if (m_blisten == false)
                    {
                        accsock = _svrsock.accept();//接收客户端的服务请求套接字。
                    }
                    //
                    idatabuflen = (ushort)accsock.receive(bdatabuf, bdatabuf.length, 0);
                    //
                    if (idatabuflen > 0)
                    {
                        //处理数据
                        //同时m_blisten被置true
                    }
                }
            }
            catch (exception ex)
            {
                messagebox.show("监听异常:" + ex.message);
                return;
            }
        }

 /*
 服务器和客户端采用tcp方式连接。
服务器连续发送几条数据过来,客户端while(true)循环接收
结果只能接收到前面两条数据,后面还有数据接收不到。
服务器端确保没有问题,问题应处在客户端。

 */

时间: 2024-09-01 06:18:29

asp.net c#.net Tcp socket 接收数据代码的相关文章

Socket接收数据包

问题描述 我用socket接收数据,发送端发送了2000个字节的数据包,但是服务器接收数据包的时候接收的是两个被分开的数据包,但是这两个数据包的总和加起来是4973.后来我在大神的指导下,能接受一个完整的数据包,但是接收的这个数据包长度还是4973个.请问这是什么原因?谢谢 解决方案 解决方案二:最好不要发送太大的数据包解决方案三:从你的问题看不出问题出在哪里.你可以在我贴出的一个例子的基础上做扩展和封装.在这个底层没有必要自己写.解决方案四:tcp发送的数据的大小,根据你的业务信令具体的实例而

Android实现TCP客户端接收数据的方法_Android

本文实例讲述了Android实现TCP客户端接收数据的方法.分享给大家供大家参考,具体如下: 配合log4net使用,用来接收调试信息.因此,此客户端只管通过TCP接收字符串数据,然后显示在界面上. 接收TCP数据 try { Socket s = new Socket("192.168.1.5", 8240); InputStream inputStream = s.getInputStream(); DataInputStream input = new DataInputStre

Android实现TCP客户端接收数据的方法

本文实例讲述了Android实现TCP客户端接收数据的方法.分享给大家供大家参考,具体如下: 配合log4net使用,用来接收调试信息.因此,此客户端只管通过TCP接收字符串数据,然后显示在界面上. 接收TCP数据 try { Socket s = new Socket("192.168.1.5", 8240); InputStream inputStream = s.getInputStream(); DataInputStream input = new DataInputStre

关于socket接收数据问题

问题描述 用的unity,c#写的,请问一下各位大神代码接收数据的问题,不知道为什么只能接收一次服务端返回的数据无法接受第二次!!!!整了半天也没弄懂,代码如下,注册功能:publicUIInputusername;publicUIInputpassword;publicclassStateObject{//Clientsocket.publicSocketworkSocket=null;//Sizeofreceivebuffer.publicconstintBufferSize=1024;//

socket接收数据问题

问题描述 第一次做socket,想知道用一个缓存区间接收数据是不是除了最后一次接收的数据有可能小于缓冲区的大小,前面几次每次都接收的是缓冲区大小,假如报文长度为5000个字节,我每次用1024字节的缓冲区接收,前面4次都是1024,只有最后一次小于1024,能不能这么理解 解决方案 解决方案二:不一定如果你是udp协议那么你包大小是多少发送过去接收就是多少如果你接收端的缓存小于发送包大小直接异常如果你是tcp协议那么就不一样了有可能你第一次只收到1000而不是1024这就看网络情况了解决方案三:

客户端Socket接收数据问题,跪求,谢谢,只要帮忙解决问题,可以付费的

问题描述 C#代码如下,客户端并发大概几百,以下代码会造成数据丢失吗?怎么呢保证完整接收数据呢,服务器端要求按照4个字节接收,按照我自己写的代码,循坏次数太多导致效率低下,怎么修改代码呢?List<byte> listByte = new List<byte>();//装载接收到的数据byte[] bytes;if (listByte.Count != 0){  listByte.Clear(); } while (true) {  bytes = new byte[1024]; 

C语言中经socket接收数据的相关函数详解_C 语言

recv()函数:头文件: #include <sys/types.h> #include <sys/socket.h> 定义函数: int recv(int s, void *buf, int len, unsigned int flags); 函数说明:recv()用来接收远端主机经指定的socket 传来的数据, 并把数据存到由参数buf 指向的内存空间, 参数len 为可接收数据的最大长度. 参数 flags 一般设0. 其他数值定义如下: 1.MSG_OOB 接收以out

asp.net sqlserver2005数据库存入和读取二进制文件数据代码 该如何实现呢

问题描述 asp.netsqlserver2005数据库存入和读取二进制文件数据代码文件包括pdf文档,.Doc.Excel.Zip.Rar等.该如何实现呢QQ:282617226并提供在线阅读和下载功能. 解决方案 解决方案二:给个e-mail发个源码给你,我公司上不成qq解决方案三:weidazhe@163.com

asp.net 获取数组中重复数据代码

asp教程.net 获取数组中重复数据代码 下面提供了五款不同方法的取出数据中重复的数据并统计重复的次数. dictionary<int, int> dic = new dictionary(); int[] arr = new int[] { 1, 5, 2, 6, 7, 1, 5, 4, 1, 6, 8, 7, 6 }; foreach(int i in arr) {   try   {   dic.add(i, i);   }   catch(exception err)   {   /