Socket遇到的问题
来源:互联网 发布:视频会议矩阵用途 编辑:程序博客网 时间:2024/04/28 11:34
首先使用Socket的Receive方法:
socket在直接使用receive方法接收数据时时会遇到线程被阻塞的情况:
如:
public void ConnectionServer() { sokClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建 ip对象 IPAddress address = IPAddress.Parse("192.168.1.77"); //创建网络节点对象 包含 ip和port IPEndPoint endpoint = new IPEndPoint(address, 1900); //连接 服务端监听套接字 sokClient.Connect(endpoint); //创建负责接收 服务端发送来数据的 线程 threadClient = new Thread(ReceiveMsg); threadClient.IsBackground = true; //如果在win7下要通过 某个线程 来调用 文件选择框的代码,就需要设置如下 threadClient.SetApartmentState(ApartmentState.STA); threadClient.Start(); } void ReceiveMsg() { while (isRec) { Application.DoEvents(); byte[] msgArr = new byte[1024 * 1024 * 1];//接收到的消息的缓冲区 int length = 0; //接收服务端发送来的消息数据 if (sokClient.Available > 0)//判断是否接收到信息 { length = sokClient.Receive(msgArr);//Receive会阻断线程 } else { continue; } string strMsg = System.Text.Encoding.UTF8.GetString(msgArr);ShowMsgForm(strMsg); } }如果不加sokClient.Available > 0判断直接使用Receive方法则会出现线程阻塞的情况(不知是否是这个解决方案,但我是加上这个判断问题就解决了);另外值得一说的是Socket线程在不断的进行Receive请求时(即在while循环中);在其中new 窗体显示的时候,这个窗体是不会被显示出来的,原因是该线程占用cpu一直处理Receive请求,无法去渲染窗体出来,处理办法就是调用Application.DoEvents()方法对齐暂时释放cpu渲染窗体(自己的理解);
- Socket遇到的问题
- socket的编程所遇到的问题
- socket通信的遇到的问题1
- ipv6 socket 编程中遇到的问题
- 关于Android Socket编程遇到的问题
- socket通信中遇到的问题
- 我遇到的socket tcp/ip问题
- 【JAVA】Socket文件上传遇到的问题!~
- 使用socket遇到的问题以及解决
- 在socket中用printwriter遇到的问题
- Android socket 开发中遇到的问题.
- Socket:server端的插入文件处理遇到的问题
- Socket 编程 windows到Linux代码移植遇到的问题
- 交叉编译D-BUS时遇到abstract socket的问题。
- Socket 编程时候遇到的Broken pipe问题
- AS3使用SOCKET遇到的安全沙箱问题
- flash socket与后台通讯遇到的问题
- Socket 编程 windows到Linux代码移植遇到的问题
- FreeBSD 8.2 家用宽带设置指南
- Timer的使用
- Fex Sdk 下载地址
- Android开发 AsyncTask异步任务类
- 手动给帮助类打 jar包 和 给Web项目打 war包
- Socket遇到的问题
- Ajax的封装
- 博客开通记
- .如何复制多个临时文件
- error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'
- (转)网页头部<meta name="Robots" 用法 <meta>系列用法.
- javascript几种方法创建function对象的异同
- javascript:window.external.AddFavorite 加入收藏 IE 报错"找不到元素"
- 获取Android手机上的图片和视频缩略图