使用socket的receive方法怎么会产生indexoutofrangeexception?

问题描述

各位大虾,我有一个问题,我使用socket的receive方法,如下:DimbytesAsInt32DimRecvBytes(1024)AsBytebytes=mSocket.Receive(RecvBytes,RecvBytes.Length,SocketFlags.None)注:msocket为socket类。有时候在msocket.receive方法是会发生indexoutofrangeexception,这是怎么回事

解决方案

解决方案二:
我看了,receive方法应该不会触发该异常的。
解决方案三:
路过!RecvBytes.Length-1行不行?!
解决方案四:
回2楼可以看看ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemnetsocketssocketclassreceivetopic3.htmDimbytesAsInt32=s.Receive(RecvBytes,RecvBytes.Length,0)
解决方案五:
该回复于2008-05-26 19:36:03被版主删除
解决方案六:
好像没那么简单,呵呵.

时间: 2024-10-31 09:09:34

使用socket的receive方法怎么会产生indexoutofrangeexception?的相关文章

C# 网络编程之使用Socket类Send、Receive方法的同步通讯

      经过几天学习,终于解决了再C#网络编程中使用Socket类Send和Receive方法开发的客户端和服务端的同步通讯程序:实现了又客户端想服务器发送消息的界面程序.主要使用的方法是:      1.Socket套接字编程的知识,通过IPAddress定义一个IP地址,IPEndPoint定义一个主机,Socket实例套接字对象sock和线程Thread的的成员变量;      2.再调用方法bind绑定端口.listen监听端口.accept接受连接请求.connect请求连接来连接

Android编程实现基于局域网udp广播自动建立socket连接的方法_Android

本文实例讲述了Android编程实现基于局域网udp广播自动建立socket连接的方法.分享给大家供大家参考,具体如下: android开发中经常会用到socket通讯.由于项目需要,最近研究了一下这方面的知识. 需求是想通过wifi实现android移动设备和android平台的电视之间的文件传输与控制. 毫无疑问这中间一定需要用到socket来进行通信.今天就两台设备的握手连接方式分享一下吧,该方法只是本人个人想法的实现,仅供参考,如有雷同,不胜荣幸. 要想使用socket进行通讯,就必须知

Android编程实现基于局域网udp广播自动建立socket连接的方法

本文实例讲述了Android编程实现基于局域网udp广播自动建立socket连接的方法.分享给大家供大家参考,具体如下: android开发中经常会用到socket通讯.由于项目需要,最近研究了一下这方面的知识. 需求是想通过wifi实现android移动设备和android平台的电视之间的文件传输与控制. 毫无疑问这中间一定需要用到socket来进行通信.今天就两台设备的握手连接方式分享一下吧,该方法只是本人个人想法的实现,仅供参考,如有雷同,不胜荣幸. 要想使用socket进行通讯,就必须知

DatagramSocket.receive()方法无响应的解决

之前看网上说用发送命令行的方式获取客户端的mac地址,具体方法不复述了. 其中用到这个receive()方法,朋友在测试的时候发现会无响应,发现是window的系统防火墙开启以后出现的. 无法保证每个用户都是关闭系统防火墙的,所以看了一下api,发现一个解决方法. 直接贴代码看吧 [java] view plaincopyprint? DatagramSocket ds=new DatagramSocket();          DatagramPacket dpk = new Datagra

ERROR 2002 (HY000): Cant connect to local MySQL server through socket的解决方法

连接MySQL提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的解决方法 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 原文:http://www.aiezu.com/db/mysql_cant_connect_thro

使用 Socket.Receive 方法接收資料時要如何判斷資料已全部接收完畢??

问题描述 我目前的方法是Socket.Available這個屬性來實作,如以下的代碼:while(Socket.Available>0)....略Socket.Receive}但是Socket.Available只是取得已經從網路接收的資料量而已..所以如果網路回應的比較慢,資料還沒有被讀入到緩衝區內..那Socket.Available就會返回0,直到又從網路接收到新的資料後Socket.Available才會大於0因此很多時候上面的代碼根本還沒把資料全部接收完畢就跳離迴圈了!!我搜尋很多文章

2.0中,多线程操作socket, 使用send方法时产生死锁!!!!

问题描述 服务器端接收客户端的socket请求,每连接一个新请求,就分配一个新线程,然后调用send()方法,向客户端发送一条数据.现在的问题是:服务器端可以接收并分发线程,客户端也能接收到send()的数据,但是每当send()数据的时候,服务器端就产生死锁(没有响应),CPU100%这是为什么啊?是不是sned()属于不安全线程调用?有什么办法解决啊?谢谢了. 解决方案 解决方案二:staticobjectobjLock=newobject();在要对同一socket访问时加锁:lock(o

为python设置socket代理的方法_python

首先,你得下载SocksiPy这个.解压出来之后里面会有一个socks.py文件.然后你可以把这个文件复制到python安装目录里面的Lib\site-packages中.或者把这个文件复制到程序所在的目录中. 然后就可以再程序中使用socket代理来编写程序了. 下面是示例代码 import socks import socket socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",8088) socket.socket

node.js中使用socket.io的方法_node.js

使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器. 在http服务器运行之后,使用listen方法为该http服务器附加一个socket.io服务器. 复制代码 代码如下: var sio=require("scoket.io"); var socket=sio.listen(server); socket就是在server基础上创建的一个socket.io服务器. 当客户端与服务器端建立连接时,触发socket.io服务