前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >unity3d:最简单的服务器,把收到消息发回客户端

unity3d:最简单的服务器,把收到消息发回客户端

作者头像
立羽
发布2023-08-24 14:32:32
发布2023-08-24 14:32:32
31000
代码可运行
举报
文章被收录于专栏:Unity3d程序开发Unity3d程序开发
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
复制
using UnityEngine;  
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using System;
using System.Text;  
using UnityEngine.UI;

public class Server: MonoBehaviour {  

	private static byte[] result = new byte[1024];  
	static Socket serverSocket;
    Thread myThread;

    void Start()  
	{  
		//服务器IP地址  
		IPAddress ip = IPAddress.Parse(GameConst.IP);  
		serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  
		serverSocket.Bind(new IPEndPoint(ip, GameConst.Port));  //绑定IP地址:端口  
		serverSocket.Listen(10);    //设定最多10个排队连接请求  
		//通过Clientsoket发送数据  
		myThread = new Thread(ListenClientConnect);  
		myThread.Start();  
		Console.ReadLine();  
	}  

	/// <summary>  
	/// 监听客户端连接  
	/// </summary>  
	private void ListenClientConnect()  
	{  
		while (true)  
		{ 
			Socket clientSocket = serverSocket.Accept();  
			Thread receiveThread = new Thread(ReceiveMessage);  
			receiveThread.Start(clientSocket); 
			//Debug.Log(clientSocket.RemoteEndPoint.ToString());
		}  
	}  

	/// <summary>  
	/// 接收消息
	/// </summary>  
	/// <param name="clientSocket"></param>  
	private static void ReceiveMessage(object clientSocket)  
	{  
		Socket myClientSocket = (Socket)clientSocket;  
		while (true)  
		{  
			try  
			{  
				int receiveNumber = myClientSocket.Receive(result);
                if (receiveNumber > 0)
                {
                    myClientSocket.Send(result, receiveNumber,0);
                }
			}  
			catch(Exception ex)  
			{  
				//Console.WriteLine(ex.Message);  
				myClientSocket.Shutdown(SocketShutdown.Both);  
				myClientSocket.Close();  
				break;  
			}  
		}  
	}

    void OnApplicationQuit()
    {

        if (myThread != null)
        {
            myThread.Abort();
            myThread = null;
        }
    }


}  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档