lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  201 随笔 :: 0 文章 :: 12 评论 :: 21万 阅读

1.Socket通信的基本流程

 

2.客户端

复制代码
 1 using System.Net.Sockets;
 2 using System.Text;
 3 using UnityEngine;
 4 using UnityEngine.UI;
 5 
 6 public class TestSocket : MonoBehaviour
 7 {
 8     private Socket socket;
 9     public InputField inputField;
10     public Text text;
11 
12     void Start()
13     {
14         //InterNetwork:使用IPv4
15         //InterNetworkV6:使用IPv6
16         socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
17     }
18 
19     public void TestConnect()
20     {
21         //Connect
22         socket.Connect("127.0.0.1", 8888);
23     }
24 
25     public void TestSend()
26     {
27         //Send
28         byte[] writeBytes = Encoding.Default.GetBytes(inputField.text);
29         socket.Send(writeBytes);
30 
31         //Receive
32         byte[] readBytes = new byte[1024];
33         int count = socket.Receive(readBytes);
34         text.text = Encoding.Default.GetString(readBytes, 0, count);
35 
36         //Close
37         socket.Close();
38     }
39 }
复制代码

 

3.服务端

复制代码
 1 using System;
 2 using System.Net;
 3 using System.Net.Sockets;
 4 using System.Text;
 5 
 6 namespace TestSocket
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
13 
14             //Bind
15             IPAddress iPAddress = IPAddress.Parse("127.0.0.1");
16             IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 8888);
17             socket.Bind(iPEndPoint);
18 
19             //Listen
20             socket.Listen(0);
21             Console.WriteLine("Listen");
22 
23             while (true)
24             {
25                 //Accept
26                 Socket clientSocket = socket.Accept();
27                 Console.WriteLine("Accept");
28 
29                 //Receive
30                 byte[] readBytes = new byte[1024];
31                 int count = clientSocket.Receive(readBytes);
32                 string readStr = Encoding.Default.GetString(readBytes, 0, count);
33                 Console.WriteLine("Receive:" + readStr);
34 
35                 //Send
36                 byte[] writeBytes = Encoding.Default.GetBytes(readStr);
37                 clientSocket.Send(writeBytes);
38             }
39         }
40     }
41 }
复制代码

 

posted on   艰苦奋斗中  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示