ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:20.77KB ,
资源ID:9824318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9824318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(新提醒Unity3D教程实现基于Socket通讯的公共聊天室.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

新提醒Unity3D教程实现基于Socket通讯的公共聊天室.docx

1、新提醒Unity3D教程实现基于Socket通讯的公共聊天室【新提醒】【Unity3D教程:实现基于 Socket通讯的公共聊天室】using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net.Sockets;namespace TestServerclass Program/ 设置连接端口const int portNo = 500;static void Main(string args)/ 初始化服务器 IPSystem.Net.IPAddress lo

2、calAdd =System.Net.IPAddress.Parse(127.0.0.1);/ 创建 TCP 侦听器TcpListener listener = new TcpListener(localAdd, portNo);listener.Start();/ 显示服务器启动信息Console.WriteLine(Server is starting.);while (true)ChatClient user = newChatClient(listener.AcceptTcpClient();/ 显示连接客户端的 IP 与端口Console.WriteLine(user._client

3、IP + is joined.);ChatClient.cs using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;using System.Net.Sockets;namespace TestServer class ChatClient public static Hashtable ALLClients = new Hashtable(); /客户列表private TcpClient _client; / 客户端实体public

4、 string _clientIP; / 客户端 IPprivate string _clientNick; / 客户端昵称private bool ReceiveNick = true;public ChatClient(TcpClient client) this._client = client;this._clientIP = client.Client.RemoteEndPoint.ToString();/ 把当前客户端实例添加到客户列表当中ALLClients.Add(this._clientIP, this);client.GetStream().BeginRead(data,

5、0,System.Convert.ToInt32(this._client.ReceiveBufferSize),ReceiveMessage, null);/ 从客戶端获取消息public void ReceiveMessage(IAsyncResult ar) int bytesRead;trybytesRead = this._client.GetStream().EndRead(ar);if (bytesRead < 1)ALLClients.Remove(this._clientIP);Broadcast(this._clientNick + has left the chat

6、);return;elsestring messageReceived =System.Text.Encoding.ASCII.GetString(data, 0, bytesRead);if (ReceiveNick) this._clientNick = messageReceived;Broadcast(this._clientNick + has joined the chat.);/this.sendMessage(hello);ReceiveNick = false;elselock (this._client.GetStream() this._client.GetStream(

7、).BeginRead(data, 0,System.Convert.ToInt32(this._client.ReceiveBufferSize),ReceiveMessage, null);catch (Exception ex)Broadcast(this._clientNick + has left the chat.);/ 向客戶端发送消息public void sendMessage(string message) trySystem.Net.Sockets.NetworkStream ns;lock (this._client.GetStream()ns = this._clie

8、nt.GetStream();/ 对信息进行编码byte bytesToSend =System.Text.Encoding.ASCII.GetBytes(message);ns.Write(bytesToSend, 0, bytesToSend.Length);ns.Flush();catch (Exception ex)public void Broadcast(string message)Console.WriteLine(message);foreach (DictionaryEntry c in ALLClients)(ChatClient)(c.Value).sendMessag

9、e(message +Environment.NewLine);usingunity3d 客户端的代码 ClientHandler.cs :UnityEngine;using System.Collections;using System;using System.Collections.Generic;using System.ComponentModel;using System.Text;using System.Net.Sockets;public class ClientHandler : MonoBehaviour const int portNo = 500;private Tc

10、pClient _client;byte data; / Use this for initialization void Start () / Update is called once per frame void Update () public string nickName = ;public string message = ;void OnGUI()public string sendMsg = ;nickName = GUI.TextField(new Rect(10, 10, 100, 20),nickName);message = GUI.TextArea(new Rect

11、(10, 40, 300, 200),message);sendMsg = GUI.TextField(new Rect(10, 250, 210, 20),sendMsg); if(GUI.Button(new Rect(120, 10, 80, 20), Connect)/Debug.Log(hello);this._client = new TcpClient();this._client.Connect(127.0.0.1, portNo);data = new bytethis._client.ReceiveBufferSize;/SendMessage(txtNick.Text);

12、SendMessage(nickName);this._client.GetStream().BeginRead(data, 0,System.Convert.ToInt32(this._client.ReceiveBufferSize),ReceiveMessage, null); if(GUI.Button(new Rect(230, 250, 80, 20), Send)SendMessage(sendMsg);sendMsg = ; public void SendMessage(string message) tryNetworkStream ns = this._client.Ge

13、tStream();byte data =System.Text.Encoding.ASCII.GetBytes(message);ns.Write(data, 0, data.Length);ns.Flush();catch (Exception ex)/MessageBox.Show(ex.ToString(); public void ReceiveMessage(IAsyncResult ar) try int bytesRead;bytesRead = this._client.GetStream().EndRead(ar);if (bytesRead < 1) return;else Debug.Log(System.Text.Encoding.ASCII.GetString(data, 0, bytesRead); message +=System.Text.Encoding.ASCII.GetString(data, 0, bytesRead);this._client.GetStream().BeginRead(data, 0,System.Convert.ToInt32(this._client.ReceiveBufferSize),ReceiveMessage, null); catch (Exception ex)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1