版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/85011963
与服务器端类似
1.建立套接字
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
2.连接服务器的IP地址、端口
clientSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.126"), 6650));
3.接收服务器端消息
由于客户端基本只对应一台服务器,所以不需要写异步,直接Receive()函数就行
//接收服务器端消息
byte[] data = new byte[1024];
int count = clientSocket.Receive(data);//会暂停,只有先接收到,才会继续执行下面的(包括发送)
string msg = Encoding.UTF8.GetString(data, 0, count);
Console.Write(msg);
4.发送数据
//向服务器端发送消息
string s = Console.ReadLine();
clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停
如果要持续发送数据,则加上while(true){}
//持续发送数据
while (true)
{
//向服务器端发送消息
string s = Console.ReadLine();
clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停
}
完整代码:
using System.Net;
using System.Net.Sockets;
static void Main(string[] args)
{
StartClientAsyn();
}
static void StartClientSync() {
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.126"), 6650));
//接收服务器端消息
byte[] data = new byte[1024];
int count = clientSocket.Receive(data);//会暂停,只有先接收到,才会继续执行下面的(包括发送)
string msg = Encoding.UTF8.GetString(data, 0, count);
Console.Write(msg);
//向服务器端发送消息
string s = Console.ReadLine();
clientSocket.Send(Encoding.UTF8.GetBytes(s));//不会暂停
clientSocket.Close();
}