SOCKET 通讯的难题,SOCKET 通讯的难题,SOCKET 通讯的难题 [问题点数:80分,结帖人flers]

Bbs4
本版专家分:1735
结帖率 93.67%
Bbs4
本版专家分:1116
Bbs4
本版专家分:1549
Bbs7
本版专家分:15327
Bbs4
本版专家分:1365
Bbs4
本版专家分:1735
Bbs9
本版专家分:52499
Blank
微软MVP 2009年7月 荣获微软MVP称号
2005年7月 荣获微软MVP称号
2008年7月 荣获微软MVP称号
2007年7月 荣获微软MVP称号
2006年7月 荣获微软MVP称号
Blank
蓝花 2004年5月 .NET技术大版内专家分月排行榜第三
Bbs9
本版专家分:52499
Blank
微软MVP 2009年7月 荣获微软MVP称号
2005年7月 荣获微软MVP称号
2008年7月 荣获微软MVP称号
2007年7月 荣获微软MVP称号
2006年7月 荣获微软MVP称号
Blank
蓝花 2004年5月 .NET技术大版内专家分月排行榜第三
Bbs2
本版专家分:121
Bbs4
本版专家分:1735
Bbs5
本版专家分:3272
linux下的socket接收数据的难题
我写的<em>socket</em>能接受一定大的数据,可是一到传图片的时候就会出错误,这是为什么,我是存到你个很大UBFF里的,还有就是,接受的数据不完全,<em>socket</em>接受数据时,它是怎么接受的,会不会分段,?请大师们,帮忙解析
难题征答。。。。有关socket的。。。
在客户端用TClientSocket控件实现一个函数int start();用它来实现对服务端连接,并对连接的结果进行判断。如果连接成功(有OnConnect事件产生)返回0,如果连接失败(有OnError事件产生)返回-1。要求TClientSocket的类型为NonBlocking。rnrn别以为很简单,就用你认为是最简单的方法实际编写代码上机运行一下,会有意想不到的结果。我用的是bcb6。
SOCKET进程池难题?
最近要做一个tcp连接服务器,建立200个子进程 ,进程池的例程或资料太少,的确有点为难,请叫高人指点,谢谢 最好有demornrn email:srgbzf@163.com 万分感谢
难题征答。。。有关socket的。。
在客户端用TClientSocket控件实现一个函数start(IpAddress,Port);用它来实现对服务端连接,并对连接的结果进行判断。如果连接成功(有OnConnect事件产生)返回0,如果连接失败(有OnError事件产生)返回-1。要求TClientSocket的类型为NonBlocking。rnrn别以为很简单,就用你认为是最简单的方法实际编写代码上机运行一下,会有意想不到的结果。...
socket~~大难题
我现在有个问题~~就是~~~rn用<em>socket</em>发信息rn但是所发的信息有很多客户端,现在我要对每个客户端都有针对的发信息。rn比如我要给01好客户发信息就至给01客户端发
关于socket读取数据的难题!!!
1.从WEB服务器传输的图象,在客户端从输入流读取到的数据该如何还原,读取数据时,读到的数据该如何存储?用byte[]还是char[]还是什么?对编码有没有要求呢?rnrn2.WEB服务器上发出的响应,如何判断它发送结束?(我是指从套接字上读取!)比如对于带有图片的响应,WEB服务器是如何动作的,是不是先发送HTML的内容,然后在发送IMAGE/JPG的内容?
Java SoCket难题
Java在Socket编程中,如何将字节流转换成网络流,就是类似于Dephi中的htonl(CallReq.MsgHead.CmndLegth)的用法。而接收时又是如何转换的?
Socket通讯调试器
一款万能的Socket<em>通讯</em>调试器,可以设置为服务器端,也可以是客户端。同时服务器端还可以转发其他客户端的Socket<em>通讯</em>。
net2.0 Socket通讯
多线程,异步<em>通讯</em>等等
socket通讯的简单例子
一个关于<em>socket</em><em>通讯</em>的简单小例子,入门<em>socket</em>可以看看
powerbuilder开发的socket通讯
powerbuilder 开发Socket<em>通讯</em>框架,封装了Client和Server端类库。
delphi Socket通讯 demo
使用TServerSocket和TClientSocket控件类实现的网络<em>通讯</em>的例子,demo集客户端服务端为一体,可选择使用作为服务端或者客户端,
socket通讯 demo
delphi7 <em>socket</em><em>通讯</em> demo TServerSocket和TClientSocket组件
socket通讯,图片传输
<em>socket</em><em>通讯</em>,图片传输。一次请求,还回多张图片。实现方式。会送的数据有两部分组成一部分4096个字节用来描述数据(描述个图片的大小,和图片的个数),4906后的数据为真实数据(根据描述解析数据)。有利于学习<em>socket</em><em>通讯</em>
Java socket通讯
Java <em>socket</em><em>通讯</em>实现,可以相应多个客户端,服务器端将客户端请求处理后转发给客户端。
最简单socket通讯
这里实现一个跨平台的<em>socket</em><em>通讯</em>,Android手机作为客户端向Ubuntu的QT平台上的服务端发送一个字符命令,由于是只发送一个字符,这里我尽可能简化<em>socket</em><em>通讯</em>的过程以供后人参考。解决了跨平台的<em>socket</em>传输字符编码转换的问题。我的文章地址:http://blog.csdn.net/u013453604/article/details/47733923
socket服务端和客户端通讯
<em>socket</em>服务端和客户端<em>通讯</em>
C#TcpIp SOCKET通讯源码
C#精简SOCKET编程包含Socketsever和SocketClient
C#简单的socket通讯
使用C#写的简单的<em>socket</em><em>通讯</em>客户端和服务端 初学者可以看一下
Socket通讯源码
Socket<em>通讯</em>源码(抓捕工具、<em>socket</em>测试工具),利用SocketAsyncEventArgs开发的<em>socket</em>测试工具。
socket(套接字)通讯,客户端
一个简单的网络同学的客户端,是C++的,实现消息(字符串)发送。
tcp socket通讯
tcp <em>socket</em>封装,可直接使用
通讯控件socket
串口,<em>socket</em>串口,<em>socket</em>串口,<em>socket</em>
linux下的socket多线程通讯
在linux下用<em>socket</em>的多线程<em>通讯</em>实现一个服务器和多个客户端之间的相互<em>通讯</em>。如果要实现多个和多个客户端<em>通讯</em>,则只需将里面的thread_client编译成多个文件即可。代码绝对是能用的~有什么疑问请留言~希望对大家伙有帮助
socket通讯简单案例
附件中为SOCKET<em>通讯</em>的简单案例,通俗易懂,把电脑的IP设置为192.168.1.239 ,可以在单机上进行测试。
socket通讯实验
1)设计程序,分别构建通信的两端:服务器端和客户端应用程序,套接字类型为面向连接的Socket,自己构建双方的应答模式,实现双方的数据的发送和接收(S发给C,C发给S)。 2)服务端程序能响应单个或任意多个客户端连接请求;服务端能向单个客户发送消息,支持群发消息给所有客户端; 3)通信的双方具备异常响应功能,包括对方异常退出的处理。如果客户端退出,服务器有响应;反之亦然。
Socket通讯程序
学习Socket<em>通讯</em>写的小程序,主要功能是实现将客户端发送的小写字母转换为大写字母
Socket通讯Demo
这个是关于<em>socket</em>技术的代码类,采用的技术语言为java、
请教socket通讯编程
有没有人对<em>socket</em><em>通讯</em>编程比较了解呢?老板想找人做一个这方面的系统。
socket通讯迸发问题
客户端通过<em>socket</em>与主机进行<em>通讯</em>,如果多个用户同时向主机发送数据,则返回结果是错误的,网上查了一些资料,说是数据并发的问题,现在我改怎样改进,才能不致数据错误。rn服务端是UNIX C,客户端是vb.net,现把客户端代码贴出来,大家帮忙看下,该如何改进,才能满足要求。rn客户端代码:rn[code=VB.NET]rnPublic Class StateObjectrn 'SOCKET IDrn Public workSocket As Socket = Nothingrn '可接收数据大小rn Public Const BufferSize As Integer = 1024 * 512rn 'Public Const BufferSize As Integer = 1024rn '接收数据缓冲区rn Public buffer(BufferSize) As Bytern '接收数据rn Public sb As New StringBuilderrnEnd ClassrnrnPublic Class ESA_TCP_CLIENTrnrn '处理结果rn Public Enum ExSocketStatern ExSocketSucceed = 0 '处理成功rn ExSocketNoConnect = 1 '主机无连接rn ExSocketUnKnown = 2 '未知状态(主机未响应)rn ExSocketAllUsed = 3 '无可用端口(没有空闲状态的端口)rn End Enumrnrn Private connectDone As New ManualResetEvent(False)rn Private sendDone As New ManualResetEvent(False)rn Private receiveDone As New ManualResetEvent(False)rn Private response As String = String.Emptyrnrn '超时时间(毫秒)rn Private iTimeOutM As Integerrn Private isConn As Boolean = Falsernrn Public Function SendTo(ByVal strHostIP As String, _rn ByVal iPort As Integer, _rn ByVal iTimeout As Integer, _rn ByVal strSend As String, _rn ByRef strRecv As String, _rn ByVal Merch_ID As String, _rn ByVal ULNm As String) As ExSocketState '增加Merch_ID,ULNm zfy 2011-1-6 用于生成Merch_ID.txt文件rn On Error GoTo go_Errrn Dim ipHostInfo As IPHostEntry = Dns.GetHostEntry(strHostIP)rn Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)rn Dim remoteEP As New IPEndPoint(ipAddress, iPort)rn Dim client As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)rn '2011-7-19 zfyrn strRecv = ""rn If iTimeout > 0 And iTimeout < 200000 Then '1000000rn iTimeOutM = iTimeoutrn Elsern iTimeOutM = 5000 '5000rn End Ifrn SendTo = ExSocketState.ExSocketUnKnownrn client.BeginConnect(remoteEP, New AsyncCallback(AddressOf ConnectCallback), client)rn Dim s2 = Now()rn If connectDone.WaitOne(iTimeOutM, False) = True Thenrn If isConn = True Thenrn Send(client, strSend, Merch_ID, ULNm) '增加Merch_ID zfy 2011-1-6 用于生成Merch_ID.txt文件rn If sendDone.WaitOne(iTimeOutM, False) = True Thenrn If isConn = True Thenrn '由于测试中出现异步<em>通讯</em>时接收主机报文有报文不完整情况rn '所以在此处修改为在连接、发送时采用异步方式,而接收数据时采用同步方式rn '此处还需要考虑同步接收的超时机制,暂略rn Dim state As New StateObjectrn state.workSocket = clientrn If Receive(state, Merch_ID, ULNm) Then '增加Merch_ID,ULNm zfy 2011-1-6 用于生成Merch_ID.txt文件rn 'If Receive() Thenrn strRecv = state.sb.ToString()rn If strRecv.Length > 10 Thenrn strRecv = strRecv.Substring(10, strRecv.Length - 10)rn Elsern strRecv = ""rn End Ifrn SendTo = ExSocketState.ExSocketSucceedrn Elsern SendTo = ExSocketState.ExSocketUnKnownrn End Ifrn Elsern SendTo = ExSocketState.ExSocketUnKnownrn End Ifrn Elsern SendTo = ExSocketState.ExSocketUnKnownrn End Ifrn Elsern SendTo = ExSocketState.ExSocketNoConnectrn End Ifrn Elsern SendTo = ExSocketState.ExSocketNoConnectrn End Ifrngo_Exit:rn If client.Connected = True Thenrn client.Shutdown(SocketShutdown.Both)rn End Ifrn client.Close()rn Exit Functionrngo_Err:rn GoTo go_Exitrn End Functionrnrn Private Sub ConnectCallback(ByVal ar As IAsyncResult)rn On Error GoTo go_Errrn Dim client As Socket = TryCast(ar.AsyncState, Socket)rn If client IsNot Nothing Thenrn client.EndConnect(ar)rn isConn = client.Connectedrn Elsern isConn = Falsern End Ifrn connectDone.Set()rngo_Exit:rn Exit Subrngo_Err:rn isConn = Falsern connectDone.Set()rn GoTo go_Exitrn End Subrnrn Private Function Receive(ByRef state As StateObject, ByVal Merch_ID As String, ByVal ULNm As String) As Boolean '增加Merch_ID,ULNm zfy 2011-1-6 用于生成Merch_ID.txt文件rn On Error GoTo go_Errrn Dim readStream As New NetworkStream(state.workSocket)rn Dim blnReturn As Boolean = Falsern Dim intRcv As Integerrn Dim strTmp As String = ""rn state.buffer.Clear(state.buffer, 0, StateObject.BufferSize)rn readStream.ReadTimeout = iTimeOutMrn intRcv = readStream.Read(state.buffer, 0, StateObject.BufferSize)rn Do While intRcv > 0rn strTmp = Encoding.Default.GetString(state.buffer, 0, intRcv)rn state.sb.Append(strTmp)rnrn If ConfigurationManager.AppSettings("g_IsDebug") = "1" Thenrn Dim FileToWrite As System.IO.FileStream = System.IO.File.Create("D:\程序\ESA_OPR_New\debug\Receive" + Merch_ID + "_" + ULNm + ".txt")rn Dim rByte() As Byte = Encoding.Default.GetBytes(state.sb.ToString.ToCharArray)rn FileToWrite.Write(rByte, 0, rByte.Length)rn FileToWrite.Close()rn FileToWrite = Nothingrn End Ifrn '不按照报文头字符长度来取报文体字段,因为在测试中发现WINDOWS与UNIX在中文和特殊字符的长度判断上不相同rn '所以采用查找结束符号的方式来判断报文尾rn If InStr(strTmp, "") > 0 Thenrn Exit Dorn Elsern state.buffer.Clear(state.buffer, 0, StateObject.BufferSize)rn intRcv = readStream.Read(state.buffer, 0, StateObject.BufferSize)rn End Ifrn Looprn blnReturn = Truern readStream = Nothingrngo_Exit:rn Return blnReturnrn Exit Functionrngo_Err:rn blnReturn = Falsern GoTo go_Exitrn End Functionrnrn#Region "异步<em>通讯</em>方式的接收数据函数(被注释)"rnrn ' Private Sub Receive(ByVal client As Socket)rn ' On Error GoTo go_Errrn ' Dim state As New StateObjectrn ' state.workSocket = clientrn ' client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, New AsyncCallback(AddressOf ReceiveCallback), state)rn 'go_Exit:rn ' Exit Subrn 'go_Err:rn ' GoTo go_Exitrn ' End Subrnrn ' Private Sub ReceiveCallback(ByVal ar As IAsyncResult)rn ' On Error GoTo go_Errrn ' Dim state As StateObject = TryCast(ar.AsyncState, StateObject)rn ' If state IsNot Nothing Thenrn ' isConn = Truern ' Dim client As Socket = state.workSocketrn ' Dim bytesRead As Integer = client.EndReceive(ar)rn ' If bytesRead > 0 Thenrn ' response = response.Substring(10, response.Length - 10)rn ' If response.Length >= 10 Thenrn ' If IsNumeric(response.Substring(0, 10)) = True Thenrn ' response = response.Substring(10, CInt(response.Substring(0, 10)))rn ' Elsern ' response = ""rn ' End Ifrn ' Elsern ' response = ""rn ' End Ifrn ' receiveDone.Set()rn ' Elsern ' isConn = Falsern ' receiveDone.Set()rn ' End Ifrn ' Elsern ' isConn = Falsern ' receiveDone.Set()rn ' End Ifrn 'go_Exit:rn ' Exit Subrn 'go_Err:rn ' isConn = Falsern ' receiveDone.Set()rn ' GoTo go_Exitrn ' End Subrnrn#End Regionrn Private Sub Send(ByVal client As Socket, ByVal data As String, ByVal Merch_ID As String, ByVal ULNm As String) '增加Merch_ID,ULNm 2010-1-6 zfyrn On Error GoTo go_Errrn '2011-7-14 解决中文字符编码数量问题rn Dim strLen As Integerrn For n = 1 To data.Lengthrn If AscW(Mid(data, n, 1)) > 256 Then strLen = strLen + 2 Else strLen = strLen + 1rn Nextrn data = Format(strLen, "0000000000") & datarn If ConfigurationManager.AppSettings("g_IsDebug") = "1" Thenrn Dim FileToWrite As System.IO.FileStream = System.IO.File.Create("D:\程序\ESA_OPR_New\debug\Send" + Merch_ID + "_" + ULNm + ".txt")rn 'Dim rByte() As Byte = Encoding.Default.GetBytes(data.ToCharArray)rn Dim rByte() As Byte = Encoding.Default.GetBytes(data.ToCharArray)rn FileToWrite.Write(rByte, 0, rByte.Length)rn FileToWrite.Close()rn FileToWrite = Nothingrn End Ifrn 'Dim byteData As Byte() = Encoding.ASCII.GetBytes(data)rn Dim byteData As Byte() = Encoding.Default.GetBytes(data) '2011-7-15 zfy 解决报文发送乱码问题rn client.BeginSend(byteData, 0, byteData.Length, 0, New AsyncCallback(AddressOf SendCallback), client)rngo_Exit:rn Exit Subrngo_Err:rn GoTo go_Exitrn End Subrnrn Private Sub SendCallback(ByVal ar As IAsyncResult)rn On Error GoTo go_Errrn Dim client As Socket = TryCast(ar.AsyncState, Socket)rn If client IsNot Nothing Thenrn isConn = Truern Dim bytesSent As Integer = client.EndSend(ar)rn Elsern isConn = Falsern End Ifrn sendDone.Set()rngo_Exit:rn Exit Subrngo_Err:rn isConn = Falsern sendDone.Set()rn GoTo go_Exitrn End SubrnrnEnd Classrnrn[/code]
socket通讯求助
正在做一套监控程序,因为时间急,所以一开始用了更熟悉的vb6。现在做完,打算把客户端用vs2010重写一下。下面我的代码(客户端只需要与服务器建立连接,服务器会定时向所有连接的客户端发送状态)rn现在接收到的数据并不完整,甚至还内容错位的情况发生,请问这是什么原因产生的呢?会不会是我的代码有问题?rn开始尝试过用winsock,但是客户端会在32位XP,2003和64位WIN7同时使用,所以我写出来的时候,在32位系统里运行就报错(mswinsck.ocx注册在 C:\windows\syswow64,如果注册在 system32会报错),找了很久才发现原因。所以只好暂时放弃这个打算。rn这个到底要有哪种方法,实在迷茫,还望各位不吝赐教rn[code=vb]Imports System.TextrnImports System.NetrnImports System.Net.SocketsrnImports System.ThreadingrnPublic Class Form1rn Public Delegate Sub X1(strnew As String)rn Dim bytes(1024) As Byte, ss As Socket, svr As New IPEndPoint(IPAddress.Parse("192.168.10.33"), 710), thrd As Threadrn Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Clickrn ss = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)rn ss.Connect(svr)rn Me.Text = ss.Connectedrn thrd = New Thread(AddressOf getstr)rn thrd.Start()rn End Subrn Public Sub getstr()rn While Truern ss.Receive(bytes)rn 'cgtxt(Encoding.ASCII.GetString(bytes) & vbCrLf)rn 'If Me.IsHandleCreated Then t1.Invoke(New X1(AddressOf cgtxt), Encoding.ASCII.GetString(bytes) & vbCrLf)rn MsgBox(Encoding.ASCII.GetString(bytes))rn End Whilern thrd.Abort()rn End Subrnrn Public Sub cgtxt(xxx As String)rn t1.AppendText(xxx)rn End SubrnEnd Classrn[/code]
SOCKET通讯问题
[code=C#]rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Text;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.Threading;rnusing System.Windows.Forms;rnrnrnnamespace ONECONNECTrnrn public partial class Client : Formrn rn private const int port = 11000;rn private static ManualResetEvent connectDone =rn new ManualResetEvent(false);rn private static ManualResetEvent sendDone =rn new ManualResetEvent(false);rn private static ManualResetEvent receiveDone =rn new ManualResetEvent(false);rn private static String response = String.Empty;rn private string message = string.Empty;rn Socket client;rn public Client()rn rn InitializeComponent();rn rnrn private void ConnectCallback(IAsyncResult ar)rn rn tryrn rn Socket client = (Socket)ar.AsyncState;rn client.EndConnect(ar);rn response = "Socket connected to " + client.RemoteEndPoint.ToString();rn MethodInvoker mi = new MethodInvoker(UpContrlData);rn this.BeginInvoke(mi);rn connectDone.Set();rn rn catchrn rn message = "目标机器未启动,请检查!";rn MethodInvoker mi = new MethodInvoker(UpContrlDataMessage);rn this.BeginInvoke(mi);rn connectDone.Set();rn rn rnrn private static void Receive(Socket client)rn rn tryrn rn StateObject state = new StateObject();rn state.workSocket = client;rn client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,rn new AsyncCallback(ReceiveCallback), state);rn rn catch (Exception e)rn rn Console.WriteLine(e.ToString());rn rn rnrn private static void ReceiveCallback(IAsyncResult ar)rn rn tryrn rn StateObject state = (StateObject)ar.AsyncState;rn Socket client = state.workSocket;rn int bytesRead = client.EndReceive(ar);rnrn if (bytesRead > 0)rn rn state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));rn if (state.sb.Length > 1)rn rn response = state.sb.ToString();rn rn elsern rn response = " ";rn rn client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,rn new AsyncCallback(ReceiveCallback), state);rn receiveDone.Set();rn rn elsern rn receiveDone.Set();rn rn rn catch (Exception e)rn rn Console.WriteLine(e.ToString());rn rn rnrn private static void Send(Socket client, String data)rn rn tryrn rn byte[] byteData = Encoding.ASCII.GetBytes(data);rn client.BeginSend(byteData, 0, byteData.Length, 0,rn new AsyncCallback(SendCallback), client);rn rn catch (Exception e)rn rn Console.WriteLine(e.ToString());rn rn rnrn private static void SendCallback(IAsyncResult ar)rn rn tryrn rn Socket client = (Socket)ar.AsyncState;rn int bytesSent = client.EndSend(ar);rn sendDone.Set();rn rn catch (Exception e)rn rn Console.WriteLine(e.ToString());rn rn rnrn private void btnLink_Click(object sender, EventArgs e)rn rn IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());rn IPAddress ipAddress = ipHostInfo.AddressList[0];rn IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);rn client = new Socket(AddressFamily.InterNetwork,rn SocketType.Stream, ProtocolType.Tcp);rn client.BeginConnect(remoteEP,rn new AsyncCallback(ConnectCallback), client);rn connectDone.WaitOne();rn rnrn private void UpContrlData()rn rn this.richTextBox1.AppendText("\n" + response);rn rnrn private void UpContrlDataMessage()rn rn this.lbTemp.Text=message;rn rnrn private void btnSend_Click(object sender, EventArgs e)rn rn rn Send(client, this.textBox1.Text.Trim());rn sendDone.WaitOne();rnrn Receive(client);rn receiveDone.WaitOne();rn MethodInvoker mi = new MethodInvoker(UpContrlData);rn this.BeginInvoke(mi);rn // Write the response to the console.rn // Release the <em>socket</em>.rn //client.Shutdown(SocketShutdown.Both);rn //client.Close();rn rn rnrn[/code]rnrn上面是个简单的SOCKE客户端代码,连接上后,一直只有第一次发送成功。rn之后发送不报错,但就是发送不到服务端。rn求大虾看看哪里有问题?
Socket通讯接收10054?
缘由:因考虑ACE的可移植性平台,所以使用ACE来进行<em>通讯</em>。目前客户端与服务器端粘包时,客户端总是接收报错10054,经过csdn,微软自提供解决方案,在<em>socket</em>连接前,贴上以下代码即可规避10054。rnrn----------------------------------rn [code=c] DWORD dwBytesReturned=0;rn BOOL bNewBehavior=FALSE;rn DWORD status;rn status = WSAIoctl(PrimaryUDP, SIO_UDP_CONNRESET,rn &bNewBehavior, sizeof(bNewBehavior),rn NULL, 0, &dwBytesReturned,rn NULL, NULL);rn if (SOCKET_ERROR == status)rn rn DWORD dwErr = WSAGetLastError();rn if (WSAEWOULDBLOCK == dwErr)rn rn // nothing to dorn return(FALSE);rn rn elsern rn printf("WSAIoctl(SIO_UDP_CONNRESET) Error: %d\\n", dwErr);rn return(FALSE);rn rn rn[/code]rn----------------------------------rnrn问题:因为本人是ACE新手,所以对于WSAIoctl函数的第1个参数不知如何填写,因为不知道如何找出ACE_SOCK_Stream内部的<em>socket</em>。原大虾们帮忙看看。rn附使用代码:rn----------------------------------rn [code=c] ACE_SOCK_Stream *pSock = new ACE_SOCK_Stream();rnrn DWORD dwBytesReturned=0;rn BOOL bNewBehavior=FALSE;rn DWORD status;rn status = WSAIoctl( pSock->get_handle()rn , SIO_UDP_CONNRESET,rn &bNewBehavior, sizeof(bNewBehavior),rn NULL, 0, &dwBytesReturned,rn NULL, NULL);rn if (SOCKET_ERROR == status)rn rn DWORD dwErr = WSAGetLastError();rn if (WSAEWOULDBLOCK == dwErr)rn rn // nothing to dorn return NULL;rn rn elsern rn printf("WSAIoctl(SIO_UDP_CONNRESET) Error: %d\\n", dwErr);rn return NULL;rn rn rnrn if(!ConnSrv(pSock,_ipAddr,_port))rn rn delete pSock;rn pSock=NULL;rnrn _validateSign = false;rnrn delete[] recvbuf;rn recvbuf = NULL;rnrn LC_PubFunValue::setSysState(4, "1");rn _cErrorCode = "APP0027";rnrn response->setRetCode("APP0027");rn return response;rn rn[/code]rn----------------------------------
Socket通讯问题
由于收到的消息可能很长也可能很短,因此我设定一个固定长度 每次只接受这个长度的内容,如果接受完成就结束rn代码如下:rn[code=C/C++]rn//开始接受所有消息rnstring RecvMsg = "";rnchar buf[RECEIVE_MSG_LENGTH];rnbool IsRevOK = true;rn rnwhile (true)rnrn //初始化bufrn memset(buf, '\0', sizeof(buf));rn rn int RecvBytes = recv(ClientSocket, buf, sizeof(buf), 0);//在这里阻塞rn rn if(RecvBytes == 0)rn rn //发送完毕或者Socket已关闭rn break;rn rn else if(RecvBytes == SOCKET_ERROR)rn rn //出错 rn IsRevOK = false;rn break;rn rn else if(RecvBytes < RECEIVE_MSG_LENGTH)rn rn //接收长度小于buf的长度,消息已接收完成,退出循环rn RecvMsg += buf;rn break;rn rn elsern rn //接收长度等于buf的长度,消息未必接收完成,继续循环rn RecvMsg += buf;rn rnrn[/code]rnrn但是问题来了 如果我定义的长度是500 消息正好是500的倍数 程序就会阻塞在int RecvBytes = recv(ClientSocket, buf, sizeof(buf), 0);这句话 而不是按我想的返回0,怎么办啊
socket通讯问题?
编了一个<em>socket</em>的程序<em>通讯</em>例子,在win7系统下<em>通讯</em>一切正常,但是把程序放到win2012 RT系统下,就不能接收数据了,请问这是怎么回事?使用一个网上下载的<em>通讯</em>测试的程序,只要主机win2012 RT不给目标电脑发送一遍数据,他也不会接收数据,发送一遍后数据接收就正常了。下面是接收数据的线程:rnrn Public Sub waitData() '等待接收数据(RFID)rn Dim NumData As Integerrn Tryrn mySocket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp) '‘声明一个<em>socket</em>,使用UDP协议rn Dim localEndPoint As New IPEndPoint(Dns.GetHostByName(Dns.GetHostName).AddressList(0), PortNumber)rn mySocket.Bind(localEndPoint) '‘绑定到一台服务器rn rn Catch ex As Exceptionrn MsgBox(ex.Message, MsgBoxStyle.Exclamation, "错误提示!")rn Finallyrn End Tryrnrn While Truernrn Tryrn NumData = mySocket.Receive(bytes) '‘接收数据rn setText(0, bytes) '‘处理接收到的数据rn Catch ex As Exceptionrn MsgBox(ex.Message, MsgBoxStyle.Exclamation, "错误提示!")rn Finallyrn End Tryrnrn End Whilernrn End Sub
socket通讯问题
大家好,我在做<em>socket</em><em>通讯</em>时,接收shrot类型产生乱码,开发环境是delphi。如果把客户端改用java则没发现问题,请问是不是short的问题啊?可是我在其他地方用到short类型没出错呀。rn传输的数据块如下:rn RePackPV=packed recordrn packH:packHead;//也是记录体rn plen:SHORT;//问题就出在这里,定义成integer后,delphi客户端和服务端能正常<em>通讯</em>,改成short只能和java客户端<em>通讯</em>rn pv:array[0..100] of PVvale;rn end;rnrn请帮忙分析分析
奇怪的SOCKET通讯
在一个程序中建立多个SOCKET的客户端.rn在正常工作一段时间后,就只有一个SOCKET能正常了.rn除正常的外,其它的SOCKET只能发送,而不能接收到服务端发送的数据,甚至收不到服务端发送数据后的消息.rn
一个Socket通讯的问题?
客户端是用MFC建立的TCP Socket,服务端是用VB的控件做的SOCKET,为什么从服务端发过来的两次数据(每个都是25字节),客户端只当做一次数据接收(收到50个字节),为什么接收的时候会把两次的数据合到一块呢?(我用Sniffer工具确实是两次的数据)
socket 分布式通讯问题
我用PB的SOCKET对象来实行远程数据的<em>通讯</em>rn语句如下:rnconnection myconnectrnmyconnect = create connectionrnmyconnect.driver = "WinSock"rnmyconnect.application = "dpbserv"rnmyconnect.location = "server01"rnmyconnect.ConnectToServer()rn我用的是ISDN和专线之间连接,可是它却提示我“分布式<em>通讯</em>错误”由于我第一次做这样的东西,不知道如何来调整,请高手指教??
Socket通讯的问题
各位谁做过用SOCKET传递一个结构的程序?比如定义一个rntypern rec = recordrn id : integer;rn str: string;rn end;rn的结构,用SendBuf发送后,用ReceiveBuf接收时只收到ID的值,STR的值为空,什么原因?rn
Java Delphi Socket通讯
Java和Delphi之间 Socket<em>通讯</em>,有没有哪位大虾可以指点下啊,最好是有代码rnJava服务端rnDelphi客户端
Socket 通讯问题
rn原有一个基于C/S结构的程序,客户机服务器间<em>socket</em>通信由一个COM组件实现,客户端由下面的函数实现与服务器的连接,其中 Server为服务器的名称,DataIn是客户端送出的数据,Data为服务器返回的数据rnSimulate(LPCTSTR Server, LPCTSTR DataIn, BSTR* DataOut)rn现在要改成基于B/S结构,客户端用applet 实现,在applet中如何实现上述函数?rnBSTR在java中有对应的结构吗?
socket异步通讯问题
我用SOCKET异步写了一个客户端和一个服务端,我在客户端连续发出几条信息,可服务端只接收到了第一条信息,以后的信息都没有接收到,请问这是怎么回事?
PPC socket通讯的问题
在PPC采用TCP同远程的服务器进行<em>通讯</em>时,如果用手机连用连接线连接着PC进行<em>通讯</em>,一切都正常。但如果通过无线进行<em>通讯</em>时,必须先在IE中输入一个网址,通过IE打开GPRS无线连接,这样<em>通讯</em>才正常。否则connect就会失败。请问如果解决这个问题呢?请达人指点一下。
多人通讯 socket解决方案。···
最近无聊写了个多人在线棋牌游戏,以前做网络做的少,只做过检测网卡数据包的东东。rn在写多人游戏时,突然不知道该咋设计才好。rnrn用TCP或UDP的话,都要有一端要做服务端。如果4个玩家打牌的话,我要实现无差别<em>通讯</em>,即每个玩家都同时做客户端和服务端,我想在在每个玩家都放2个<em>socket</em>一个做服务端<em>socket</em>,一个做客户端client, 这样设计是不是开销大了点。还有其他解决方法没。rn rn跪求多人在线游戏网络<em>socket</em>的解决办法
android开发——socket通讯
1、监听某个端口 public class ReceiveCardInfoTask extends AsyncTask&amp;lt;String, Void, Void&amp;gt; { private static final int RECEIVE_PORT = 8421; ServerSocket serverSocket = null; private static Soc...
简单socket通讯
<em>socket</em><em>通讯</em> 我简单的查询了<em>socket</em>的含义。<em>socket</em>的本质是编程接口,也就是API,是对TCP/IP的封装。可以通过这个接口让两个应用程序之间实现<em>通讯</em>。 那么应用程序和应用程序之间是怎么实现<em>通讯</em>的呢? 1.首先服务器与<em>socket</em>进行绑定 2.将<em>socket</em>加入到监听对列,阻塞进程开始监听 3.客户端与<em>socket</em>进行绑定 4.建立连接用的<em>socket</em>,将需要进行<em>通讯</em>的网络端点绑定在s...
SOCKET异步通讯问题
请问如果用<em>socket</em>异步<em>通讯</em>发送数据一定要用beginSend方法吗?用send方法可以吗?如果用send在接收的时候能用beginReceive方法吗?先谢谢了
java 的socket通讯问题,
ps=new PrintStream(s.getOutputStream()); rnps.println(msg);rn这个msg长度是有限的吗,
Socket 通讯的小问题
各位我写的代码如下: rn struct in_addr ia; rn ia.S_addr= htonl(INADDR_ANY); rn 结果出错: rn error C2039: 'S_addr' : is not a member of 'in_addr' 我查了 in_addr里面是包含了S_addr,不知道这是怎么回事
FR帧中继组网中的典型配置下载
FR帧中继组网中的典型配置,包括:组网需求,组网图,配置步骤,配置关键点,代码和命令。Router A作为总部和分支Router B和C通过FR互连。 相关下载链接:[url=//download.csdn.net/download/konghao1/3658526?utm_source=bbsseo]//download.csdn.net/download/konghao1/3658526?utm_source=bbsseo[/url]
ORB_an efficient alternative to SIFT or SURF下载
Feature matching is at the base of many computer vision problems, such as object recognition or structure from motion. Current methods rely on costly descriptors for de­tection and matching. In this paper, we propose a very fast binary descriptor based on BRIEF, called ORB, 相关下载链接:[url=//download.csdn.net/download/aven79/6459901?utm_source=bbsseo]//download.csdn.net/download/aven79/6459901?utm_source=bbsseo[/url]
ViewPagerText例子下载
主要介绍Viewpager的用法和例子,很有参考价值 相关下载链接:[url=//download.csdn.net/download/u014444836/7496609?utm_source=bbsseo]//download.csdn.net/download/u014444836/7496609?utm_source=bbsseo[/url]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池
我们是很有底线的