日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

项目 聊天室

發(fā)布時(shí)間:2025/3/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目 聊天室 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.先創(chuàng)建客戶(hù)端

1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.UI; 5 using System.Net; 6 using System.Net.Sockets; 7 using System.Threading; 8 using System.Text; 9 10 public class WeChatSocket : MonoBehaviour 11 { 12 Socket socket; 13 public InputField InputValue; 14 public Text text; 15 byte[] data = new byte[1024];//接收的容器 16 string message = "";//轉(zhuǎn)換后的消息 17 // Use this for initialization 18 void Start() 19 { 20 ConnetToSever(); 21 22 } 23 /// <summary> 24 /// 創(chuàng)建Socket并連接服務(wù)器IP 25 /// </summary> 26 void ConnetToSever() 27 { 28 socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 29 socket.Connect(new IPEndPoint(IPAddress.Parse("10.0.208.54"), 4567)); 30 Thread t = new Thread(ReceveMessage); 31 t.Start(); 32 } 33 public void ReceveMessage() 34 { 35 36 while (true) 37 { 38 int length = socket.Receive(data); 39 message = Encoding.UTF8.GetString(data, 0, length); 40 } 41 42 } 43 public void SendMessage() 44 { 45 string mess = InputValue.text; 46 InputValue.text = ""; 47 byte[] datas = Encoding.UTF8.GetBytes(mess); 48 socket.Send(datas); 49 } 50 // Update is called once per frame 51 void Update() 52 { 53 if (!string.IsNullOrEmpty(message)) 54 { 55 text.text += message + "\n"; 56 message = ""; 57 } 58 } 59 } 客戶(hù)端

?


接受消息的時(shí)候用容器接受 字節(jié)容器byte[];

抽象類(lèi) 與借口的區(qū)別?

1.1鏈接

2.發(fā)送(用線(xiàn)程)

?

2.服務(wù)器端 ?在vs里面寫(xiě)
主函數(shù)里的代碼:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Net; 5 using System.Net.Sockets; 6 using System.Text; 7 using System.Threading.Tasks; 8 9 namespace 聊天室服務(wù)器 10 { 11 class Program 12 { 13 static List<Client> listClient = new List<Client>();//用于存儲(chǔ)接受到的消息 14 static void Main(string[] args) 15 { 16 //1.創(chuàng)建Socket 17 Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 18 //2.綁定IP和端口 19 socket.Bind(new IPEndPoint(IPAddress.Parse("10.0.208.54"),4567)); 20 //3.監(jiān)聽(tīng) 21 socket.Listen(100); 22 //4.等待鏈接和接收 23 while (true) 24 { 25 Socket client = socket.Accept();//如果接收到就是連接成功,如果沒(méi)有接收下面程序不會(huì)運(yùn)行 26 Client clientSocket = new Client(client); 27 listClient.Add(clientSocket); 28 } 29 } 30 public static void FenFaMessage(string message) 31 { 32 List<Client> clients = new List<Client>();//用于存儲(chǔ)無(wú)效消息; 33 34 foreach (var item in listClient) 35 { 36 if (item.Connected)//如果連接正常,消息有效去發(fā)送 37 { 38 item.SendMessage(message); 39 } 40 else 41 { 42 clients.Add(item); 43 44 } 45 } 46 foreach (var item in clients)//移除無(wú)效消息 47 { 48 listClient.Remove(item); 49 } 50 51 52 } 53 } 54 } 服務(wù)器主函數(shù)代碼

服務(wù)器類(lèi)里的代碼:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Net.Sockets; 5 using System.Text; 6 using System.Threading; 7 using System.Threading.Tasks; 8 9 namespace 聊天室服務(wù)器 10 { 11 /// <summary> 12 /// 消息通訊處理類(lèi) 接收和發(fā)送消息 13 /// </summary> 14 class Client 15 { 16 public Socket socket; 17 public Client(Socket client) 18 { 19 20 socket = client; 21 Thread thread = new Thread(ReceveMessage); 22 thread.Start(); 23 } 24 25 public void ReceveMessage() 26 { 27 while (true) 28 { 29 if (socket.Poll(10, SelectMode.SelectRead))//判斷連接是否中斷 30 { 31 socket.Close(); 32 break; 33 } 34 byte[] data = new byte[1024]; 35 int length = socket.Receive(data); 36 string message = Encoding.UTF8.GetString(data, 0, length); 37 Console.WriteLine("客戶(hù)端發(fā)來(lái)消息是" + message); 38 Program.FenFaMessage(message); 39 } 40 41 42 } 43 public void SendMessage(string str) 44 { 45 byte[] datas = Encoding.UTF8.GetBytes(str); 46 socket.Send(datas); 47 } 48 public bool Connected { 49 50 get { return socket.Connected; } 51 } 52 } 53 } 服務(wù)器的分發(fā)類(lèi)的代碼

?


?

轉(zhuǎn)載于:https://www.cnblogs.com/satanj/p/9759090.html

總結(jié)

以上是生活随笔為你收集整理的项目 聊天室的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。