c#socket聊天记录
时间: 2023-09-25 16:10:03 浏览: 89
首先,你需要创建一个基于Socket的聊天程序。这个程序需要有服务端和客户端两部分。下面是一个简单的示例:
服务端:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Server
{
class Program
{
static void Main(string[] args)
{
// 创建一个TCP Socket对象
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 绑定IP地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 8888);
serverSocket.Bind(ipEndPoint);
// 开始监听
serverSocket.Listen(100);
Console.WriteLine("服务器启动成功,等待客户端连接...");
while (true)
{
// 接受客户端连接请求
Socket clientSocket = serverSocket.Accept();
// 接收客户端发送的消息
byte[] buffer = new byte[1024];
int length = clientSocket.Receive(buffer);
string message = Encoding.UTF8.GetString(buffer, 0, length);
Console.WriteLine("收到客户端的消息:" + message);
// 发送消息给客户端
string replyMessage = "已收到消息:" + message;
byte[] replyBuffer = Encoding.UTF8.GetBytes(replyMessage);
clientSocket.Send(replyBuffer);
// 关闭客户端连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
}
}
```
客户端:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Client
{
class Program
{
static void Main(string[] args)
{
// 创建一个TCP Socket对象
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 连接服务器
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 8888);
clientSocket.Connect(ipEndPoint);
// 发送消息给服务器
string message = "Hello, Server!";
byte[] buffer = Encoding.UTF8.GetBytes(message);
clientSocket.Send(buffer);
// 接收服务器回复的消息
byte[] replyBuffer = new byte[1024];
int length = clientSocket.Receive(replyBuffer);
string replyMessage = Encoding.UTF8.GetString(replyBuffer, 0, length);
Console.WriteLine("收到服务器的回复:" + replyMessage);
// 关闭客户端连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
}
```
这个程序可以实现基本的收发消息功能,但是聊天记录的保存需要一些额外的处理。可以考虑将每次收发的消息保存在一个文本文件中,或者使用数据库来保存聊天记录。
阅读全文