socket异步问题,请教大家

问题描述

现在学写一个异步多线程的服务器端,遇到一个问题,怎么异步发送数据publicstaticvoidSend(Sockethandler,Stringdata)象这个函数,怎么去调用的?

解决方案

解决方案二:
new一个socketmySocket,然后调用Send(mySocket,myData);
解决方案三:
可这样是新建的SOCKET,无法判断连接的状况,任意发吗?
解决方案四:
Send(mySocket,myData)中,mySocket中包括连接信息,要么是用它接收到对方的信息,再用它发回一个信息;要么自己用它来连接!
解决方案五:
我的意思是说这个新建的SOCKET不会包括原来的监听那个SOCKET类的信息,怎么能把那个信息传过来
解决方案六:
publicclassStateObject//(异步)线程参数类{//Clientsocket.publicSocketworkSocket=null;//Sizeofreceivebuffer.publicconstintBufferSize=256;//Receivebuffer.publicbyte[]buffer=newbyte[BufferSize];//Receiveddatastring.publicStringBuildersb=newStringBuilder();}publicvoidStart(){Socketlistener=newSocket(...);//listener为侦听连接的套接字...listener.BeginAccept(newAsyncCallback(AcceptCallback),listener);}publicvoidAcceptCallback(IAsyncResultar){Socketlistener=(Socket)ar.AsyncState;handler=listener.EndAccept(ar);//handler为接收信息的StateObjectstate=newStateObject();state.workSocket=handler;handler.BeginReceive(state.buffer,0,StateObject.BufferSize,0,newAsyncCallback(ReadCallback),state);}publicvoidReadCallback(IAsyncResultar){StateObjectstate=(StateObject)ar.AsyncState;Sockethandler=state.workSocket;//Readdatafromtheclientsocket.intbytesRead=0;//if(handler.Connected)bytesRead=handler.EndReceive(ar);}
解决方案七:
xuexue

时间: 2024-12-22 18:56:59

socket异步问题,请教大家的相关文章

.net的socket异步通讯示例分享

 这篇文章主要介绍了.net的socket异步通讯示例,操作在下面,需要的朋友可以参考下 1.首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client   2.然后添加服务端代码,添加命名空间,界面上添加TextBox控件    代码如下: using System.Net; using System.Net.Sockets;     3.FormLoad方法添加代码    代码如下: private void Form1_Load(object sender,

TCP通信socket异步,客户端报异常:目标主机积极拒绝

问题描述 TCP通信socket异步,客户端报异常:目标主机积极拒绝 服务端只监听时,客户端建立1500个连接请求都可以正常建立连接,但当服务端改成建立连接后触发一个事件给客户端发送数据时,客户端异常:目标主机积极拒绝,只能建立部分连接.是何原因,希望有老师可以指点一下.不胜感激!! 解决方案 Socket(Tcp)通信客户端 解决方案二: 客户端接收的数据是否正确处理,然后就是看一下你服务器发送数据给客户端后,是不是关闭了连接

c# 2.0-C#用Socket异步时出现错误

问题描述 C#用Socket异步时出现错误 各位大侠: 我刚用 C# 写Socket 代码,服务器端用异步监控客户端,代码如下 //开启服务器端监控---Begin internal void MonitorClient() { IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 端口号); Socket serverSocket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolT

java socket异步短连接单工编程

问题描述 java socket异步短连接单工编程 之前没有接触过socket,现在项目中临时用到socket编程,更奇特的是要求异步短连接单工模式,连接的对方是银行,求各位高手赐我一份完整的源码实例,会有高分酬谢.急用! 解决方案 去看一下NIO或AIO吧,可以使用框架的话使用Netty或Mina效果更佳

.net的socket异步通讯示例分享_实用技巧

1.首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client 2.然后添加服务端代码,添加命名空间,界面上添加TextBox控件 复制代码 代码如下: using System.Net;using System.Net.Sockets; 3.FormLoad方法添加代码 复制代码 代码如下: private void Form1_Load(object sender, EventArgs e)        {            IPEndPoint epS

C# SOCKET异步,Wineows服务 ,服务

问题描述 用Windows服务写的一个Socket异步服务器,用来解析和处理客户端上传的数据,客户端有100多个吧,刚开始运行正常,几个小时后,服务还在运行,但不能解析客户端的数据了,而且客户端也连不上了,重新了一下服务,又好了,求高手解决,主要代码如下:privateManualResetEventallDone=newManualResetEvent(false);//启动服务方法publicvoidInitRfidServer(){try{//实例化套接字(ip4寻址协议,流式传输,TCP

java nio socket 异步接收数据

问题描述 nio socket 异步接收数据,如何确定收接的数据,就是发送的返回的?有谁研究过没. 问题补充:如果不用id,nio客户端是否可以同步接收数据呢?是把socketChannel.configureBlocking(true)吗? 解决方案 在消息中增加UUID,在调用端记录UUID,并将UUID和消息一起发送到服务端,服务端的回传消息附件上UUID,调用端根据收到的消息包含的UUID确定给哪个调用者.解决方案二:异步调用的常见问题.因为没有办法实施返回,只有打标志了.要你把通信协议

C# Socket 异步如何接收网页数据?

问题描述 publicstaticbyte[]ReceiveBodyData(Socketsocket){List<byte>list=newList<byte>();intnowContentLength=0;while(true){byte[]buffer=newbyte[BUFFER_SIZE];intreceiveCount=socket.Receive(buffer,BUFFER_SIZE,SocketFlags.None);if(receiveCount>0){f

关于Socket异步编程的思路

问题描述 这几天一直在研究关于Socket的编程,因为之前完全没接触过,在网上查了很多关于这方面的资料,感觉雷同的很多,不知道为什么异步的时候还加个信号量处理,还有主要是目前需要同时连接两个服务器,客户端需要对不同的服务器传回的数据进行处理,如果采用异步的方法,有好几个回调方法,一个服务器还好,如果多出几个服务器,难道那些回调方法需要再重写一遍吗?而且异步的回调除了IAsyncResultar,又没法传递其他参数,而且也没有返回值,不知何解,可能主要是流程不太清楚把,网上都是前篇一律,不知道谁做