
C# Socket通信/TCP通信,完整代码示例
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本教程提供了一个完整的C# Socket编程实例,详细介绍如何使用TCP协议进行客户端与服务器之间的通信。适合初学者学习网络编程基础。
C# Socket通讯/TCP通讯的完整代码示例可以包括客户端和服务端两部分。服务端的主要功能是监听特定的IP地址和端口,并等待来自客户端的数据连接请求;一旦接收到,便会创建一个新的线程来处理该客户端发送过来的信息。
下面是一个简单的TCP服务器实现:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
namespace TCPServerDemo
{
class Program
{
static void Main(string[] args)
{
// 定义IP地址和端口,这里使用的是本地回环接口(loopback interface)的默认值。
string ip = 127.0.0.1;
int port = 8888;
TcpListener serverSocket = new TcpListener(IPAddress.Parse(ip), port);
// 启动监听
serverSocket.Start();
Console.WriteLine(等待客户端连接...);
while (true)
{
// 接收来自客户端的请求
var clientSocket = serverSocket.AcceptTcpClient();
// 处理接收到的数据,这里创建一个新的线程来处理每个单独的客户。
HandleClinet hc = new HandleClinet();
Thread ClientThread = new Thread(new ThreadStart(hc.ClientProcess));
hc.ThreadClientSocket = clientSocket;
ClientThread.Start();
}
}
}
}
// 客户端操作类
class HandleClinet
{
public TcpClient ThreadClientSocket;
// 处理客户端连接的操作,包括接收和发送数据。
public void ClientProcess()
{
NetworkStream networkStream = ThreadClientSocket.GetStream();
while (true)
{
byte[] bytesFrom = new byte[10025];
int dataLength = networkStream.Read(bytesFrom, 0, bytesFrom.Length);
string dataReceived = System.Text.Encoding.ASCII.GetString(bytesFrom, 0, dataLength);
Console.WriteLine(客户端发来的信息: + dataReceived); // 显示接收到的信息
if (dataReceived == exit)
break;
string serverResponse = String.Format({0}:服务器回复, DateTime.Now.ToString());
byte[] sendBytes = System.Text.Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
}
ThreadClientSocket.Close();
}
}
```
客户端代码示例:
```csharp
using System;
using System.Net.Sockets;
namespace TCPClientDemo
{
class Program
{
static void Main(string[] args)
{
// 定义服务器的IP地址和端口。
string host = 127.0.0.1;
int port = 8888;
TcpClient clientSocket = new TcpClient(host, port);
NetworkStream networkStream = clientSocket.GetStream();
Console.WriteLine(已连接到服务器。);
while (true)
{
string userMessage;
// 用户输入信息
Console.Write(请输入消息:);
userMessage = Console.ReadLine();
byte[] messageSentBytes = System.Text.Encoding.ASCII.GetBytes(userMessage);
networkStream.Write(messageSentBytes, 0, messageSentBytes.Length);
if (userMessage == exit)
break;
}
clientSocket.Close();
}
}
}
```
以上是C#编程语言中使用TCP协议进行网络通信的基本示例。
全部评论 (0)


