C#客户端与服务器简单交互笔记
客户段代码
using System;
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Net;
namespace ClientSocket
{
class Progrom
{
static void Main(string[] args)
{
Socket clientSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse("192.168.xxx.xxx");
IPEndPoint point = new IPEndPoint(ip, 2333);
clientSocket.Connect(point);
Thread thread = new Thread(Recive);
thread.IsBackground = true;
thread.Start(clientSocket);
int i = 0;
while (true)
{
i++;
var buffer = Encoding.UTF8.GetBytes($"{i}:客户端发送信息给服务器");
clientSocket.Send(buffer);
Thread.Sleep(1000);
}
}
static void Recive(object o)
{
Socket send = o as Socket;
while (true)
{
byte[] buffer = new byte[4096];
var effer = send.Receive(buffer);
if (effer == 0)
{
break;
}
var str = Encoding.UTF8.GetString(buffer, 0, effer);
Console.WriteLine(str);
}
}
}
}
服务器代码
using System;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
namespace ServerSocket
{
class Progrom
{
static void Main(string[] args)
{
Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Any;
IPEndPoint point = new IPEndPoint(ip, 2333);
socket.Bind(point);
socket.Listen(1);
Console.WriteLine("服务器连接中...");
Thread thread = new Thread(Listen) { IsBackground = true };
thread.Start(socket);
Console.Read();
}
static void Listen(object o)
{
Socket serverSocket = o as Socket;
while (true)
{
var send = serverSocket.Accept();
var sendPoint = send.RemoteEndPoint.ToString();
Console.WriteLine($"{sendPoint}Connet");
Thread thread = new Thread(Recive) { IsBackground = true };
thread.Start(send);
}
}
static void Recive(object o)
{
Socket send = o as Socket;
while (true)
{
byte[] buffer = new byte[4096];
var effer = send.Receive(buffer);
if (effer == 0)
{
break;
}
var str = Encoding.UTF8.GetString(buffer, 0, effer);
Console.WriteLine(str);
buffer = Encoding.UTF8.GetBytes("服务器返回信息");
send.Send(buffer);
}
}
}
}
查询IP地址并且输入代码地址中
服务器和客户端运行时