使用Socket编程,实现服务端与客户端的接收发消息
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Socket编程_tcp服务端
{
class Program
{
static void Main(string[] args)
{
//1.创建Socket 客户端 (连接方式 内网 ,传输类型 流,TCP协议)
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2.绑定IP与端口号
//IPAddress ipaddress = new IPAddress(new byte[] { 192, 168, 190, 1});//创建IP对象
IPAddress ipaddress = IPAddress.Parse("192.168.190.1");//等价于上方 【将字符串 转化为IP 地址对象】
EndPoint point = new IPEndPoint(ipaddress, 8888);//创建IP 与端口号对象
tcpServer.Bind(point);//2.服务端绑定 IP与端口号
//3.开始监听
tcpServer.Listen(10);//参数为 最大的连接数
Console.WriteLine("服务器开始监听");
//4.接收链接的 客户端【用于 与客户端之间的通信】
Socket clientSocket = tcpServer.Accept();
Console.WriteLine("有一个客户端已连接");
//与客户端通信 发送消息
string message = "服务端:欢迎你的连接";
byte[] data = Encoding.UTF8.GetBytes(message);
clientSocket.Send(data);
//接收客户端发送的数据
byte[] data2 = new byte[1024];
int length = clientSocket.Receive(data2);//接收 的消息 存入到data2字节中 返回值为实际接收的字节长度
string receiveMessage = Encoding.UTF8.GetString(data2, 0, length);//将字节解码为字符串 ,从0开始,解码的长度(使用数据接收到数据的长度)
Console.WriteLine("客户端发送的信息:"+ receiveMessage);
Console.ReadKey();
}
}
}
using System;
using System.Net.Sockets;
using System.Text;
namespace Socket编程_tcp客户端
{
class Program
{
static void Main(string[] args)
{
//1.创建客户端Socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2.创建连接【连接服务器】
tcpClient.Connect("192.168.190.1", 8888);
Console.WriteLine("已连接服务器");
//3.接收消息
byte[] data = new byte[1024];//创建字节数组 用于存储 接收的数据
int length = tcpClient.Receive(data);//接收 的消息 存入到data字节中 返回值为实际接收的字节长度
Console.WriteLine(Encoding.UTF8.GetString(data, 0, length));
//发送数据
Console.WriteLine("请输入发送给 服务端的数据:");
string message = Console.ReadLine();
tcpClient.Send(Encoding.UTF8.GetBytes(message));
Console.ReadKey();
}
}
}