Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

Server:

byte[] readBuff;

string receiveStr;

Main():

{

serverSocket.Bind(IPEndPoint("127.0.0.1",8888));

serverSocket.Listen(0);

==服务器启动成功==

serverSocket.BeginAccept(AcceptCallback, serverSocket);

Console.ReadLine();

}

AcceptCallback(IAsyncResult ar):

{

serverSocket = ar.AsyncState as Socket;

clientSocket=serverSocket.EndAccept(ar);

==有一个客户端Accept==

clientSocket.BeginReceive(readBuff, 0, 1024, 0, ReceiveCallback, clientSocket);

serverSocket.BeginAccept(AcceptCallback, serverSocket);

}

ReceiveCallback(IAsyncResult ar):

{

Socket clientSocket = ar.AsyncState as Socket;

int count = clientSocket.EndReceive(ar);
if (count == 0)
{
    clientSocket.Close();
    Console.WriteLine("客户端断开连接");
    return;
}

receiveStr=Encoding.UTF8.GetString(readBuff, 0, count);

=={receiveStr}==

clientSocket.BeginSend(Encoding.UTF8.GetBytes(receiveStr), 0, receiveStr.Length, 0, SendCallback, clientSocket);

clientSocket.BeginReceive(readBuff, 0, 1024, 0, ReceiveCallback, clientSocket);

}

SendCallback(IAsyncResult ar):

{

Socket clientSocket = ar.AsyncState as Socket;

clientSocket.EndSend(ar);

}

 

Client:

Socket socket;

byte[] readBuff;

string receiveStr;

Connect():

{

socket.BeginConnect("127.0.0.1",8888, ConnectCallback,socket);

}

ConnectCallback(IAsyncResult ar):

{

Socket socket = (Socket)ar.AsyncState;
socket.EndConnect(ar);

==连接成功==

socket.BeginReceive(readBuff, 0, 1024, 0, ReceiveCallback, socket);

}

ReceiveCallback(IAsyncResult ar):

{

Socket socket = ar.AsyncState as Socket;

int count = socket.EndReceive(ar);

receiveStr = Encoding.UTF8.GetString(readBuff, 0, count);

socket.BeginReceive(readBuff, 0, 1024, 0, ReceiveCallback, socket);

}

Send():

{

string sendStr = InputField.text;
byte[] sendBytes =Encoding.UTF8.GetBytes(sendStr);

socket.BeginSend(sendBytes, 0, sendBytes.Length, 0, SendCallback, socket);

}

SendCallback(IAsyncResult ar):

{

Socket socket = ar.AsyncState as Socket;
int count = socket.EndSend(ar);

==发送成功{count}==

}

[展开全文]
SilverNitrate · 2024-05-09 · 0

TCP:确保数据准确无误的传递

UDP:确保数据实时传递,会产生数据丢失

[展开全文]
SilverNitrate · 2024-05-09 · 0