Socket网络编程学习笔记

1 服务器 发送消息和接受消息的代码

namespace Socket_编程_tcp协议_服务端
{
class Program
{
static void Main(string[] args)
{
//1.创建服务端socket类
Socket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.绑定IP和端口号 192.168.155.1
IPAddress ipaddress = new IPAddress(new byte[]{192,168,155,1});
EndPoint point = new IPEndPoint(ipaddress,7788); //ipendpoint是对ip+端口号做了一次封装的类
tcpServer.Bind(point); //这是向操作系统申请一个可用的ip跟端口号 用来做通信
//3.开始监听等待客户端做连接
tcpServer.Listen(100); //参数是最大连接数
Console.WriteLine("开始监听");
Socket clientSocket = tcpServer.Accept(); //暂停当前线程,直到有一个客户端连接过来,之后进行下面的代码
//使用返回的socket跟客户端做通信
Console.WriteLine("客户端连接过来了");

string message = "hello欢迎连接";
byte[] data = Encoding.UTF8.GetBytes(message);//对字符串做二进制的编码得到一个字符串的字节数组
clientSocket.Send(data);
Console.WriteLine("向客户端发送了一条数据");
//接受消息
byte[] data2 = new byte[1024]; //创建一个字节数组容器来接受客户端发送过来的消息
int length = clientSocket.Receive(data2);
string message2 = Encoding.UTF8.GetString(data2, 0, length);
Console.WriteLine("接受到了一条消息"+message2);
Console.ReadKey();
}
}
}

2:客户端向服务端发送消息和接受消息代码

namespace Socket编程_tcp协议_客户端
{
class Program
{
static void Main(string[] args)
{
//1.创建socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.发起建立连接的请求
IPAddress ipAddress = new IPAddress(new byte[] {192, 168, 155, 1 }); //用来存储ip地址
EndPoint point = new IPEndPoint(ipAddress,7788); //用来指用来指定IP地址和端口数据
tcpClient.Connect(point); //与主机建立连接 通过ip和端口号
//
byte[] data = new byte[1024]; //定义一个byte类型的数组

int length = tcpClient.Receive(data); //接受数据 byte类型的数组,这个data是用来接受数据的
// length 表示接受了多少字节的数据
string message = Encoding.UTF8.GetString(data,0,length);
Console.WriteLine(message);

//1、服务器端发送消息

string message2 = Console.ReadLine(); //读取用户的输入 把输入发送到服务器端

byte[] date = Encoding.UTF8.GetBytes(message2); //把字符串转化成字符数组
tcpClient.Send(date);
Console.ReadKey();
}
}
}

原文地址:https://www.cnblogs.com/ylllove/p/6819113.html