110,571
社区成员
发帖
与我相关
我的任务
分享
//困扰我一天了,麻烦高手给看看
byte [] dataSend = new byte[1024];
byte [] dataRev = new byte[1024];
IPEndPoint ipEP = new IPEndPoint(IPAddress.Parse(IP), port);
ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
dataSend = Encoding.ASCII.GetBytes("命令");
ClientSocket.Send(dataSend, 0, SocketFlags.None);
ClientSocket.BeginReceive(dataRev, 0, dataRev.Length, SocketFlags.None, new AsyncCallback(RecevieCallBack), ClientSocket);
private void RecevieCallBack(IAsyncResult Ar)
{
Socket Client = (Socket)Ar.AsyncState;
int byteend = Client.EndReceive(Ar);
if (byteend>0)
{
Client.BeginReceive(dataRev, 0, dataRev.Length, SocketFlags.None, new AsyncCallback(RecevieCallBack), ClientSocket);
}
ShowMsg(Encoding.ASCII.GetString(dataRev)+Client.RemoteEndPoint.ToString());
}
clientsocket1.Active := false;
clientsocket1.Host := sIP;
clientsocket1.Port := iPort;
bop := 10;
try //当地址或端口不存在时 引发异常,不做处理 继续执行
if not clientsocket1.Active then clientsocket1.Active := true;
except
//raise Exception.Create('目标地址或端口不可用');
end;
clientsocket1.Socket.SendText(s);
sleep(500);
setsockopt(clientsocket1.Socket.SocketHandle, SOL_SOCKET, SO_RCVTIMEO, @bop, sizeof(bop));
s2 := clientsocket1.Socket.ReceiveText;
rev := BcdTOstr(s2);