首先创建一个服务器

using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Threading; //引入线程的包 public class ServerSocket : MonoBehaviour
{
private Socket serverSocket;
void Start()
{
//1使用socket创建一个对象
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
//2创建一个IpEndPoint对象(加入Ip地址)
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), );
serverSocket.Bind(endPoint);
serverSocket.Listen(); //3设置缓冲区的大小, 进行监听 ThreadStart s = new ThreadStart(X); //创建一个线程
Thread t = new Thread(s);
t.Start();
}
void Update ()
{
} private void X()
{
//4使用Accept()方法
Socket clientSocket = serverSocket.Accept();
//5接收使用Receive()方法接受客户端消息
byte[] receiveBuffer = new byte[]; //缓存的大小
int count = clientSocket.Receive(receiveBuffer);
string receiveStr = System.Text.Encoding.UTF8.GetString(receiveBuffer); //把byte转化为字符串
print(receiveStr); //6发送数据
string str = "老王你好";
byte[] sendBuffer = new byte[];
sendBuffer = System.Text.Encoding.UTF8.GetBytes(str);
clientSocket.Send(sendBuffer);
clientSocket.Close();
} } 在家建立一个客户端
using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Threading; public class ClientSocket : MonoBehaviour
{
private Socket clientSocket;
void Start ()
{
}
void Update ()
{
if(Input.GetKeyDown(KeyCode.P)) //按下P键,连接服务器
{ //1.创建客户端(Socket)
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 2. 使用 Connect() 方法连接服务器
clientSocket.Connect("127.0.0.1", ); string str = "你好, 我是老王!";
byte[] sendBuffer = System.Text.Encoding.UTF8.GetBytes(str);
// 3. 使用 Send() 方法向客户端发送消息
clientSocket.Send(sendBuffer); ThreadStart s = new ThreadStart(X);
Thread t = new Thread(s);
t.Start(); }
} private void X()
{
byte[] receiveBuffer = new byte[];
// 4. 使用 Receive() 方法接收客户端消息
clientSocket.Receive(receiveBuffer);
string receiveStr = System.Text.Encoding.UTF8.GetString(receiveBuffer);
print(receiveStr); // 5. 使用 Close() 方法断开连接
clientSocket.Close();
}
}

 

unity3d实现Socket的更多相关文章

  1. Unity3d C# Socket 下载文件 (同步到)

    续篇 Unity3d C# HttpWebRequest 异步下载文件 ,由于project编译为IL2CPP的情况下仍然无效.提示HttpWebrequest 在当前版本号不支持.所以还是寻求其他的 ...

  2. Unity3D 使用Socket处理数据并将数据 在UGUI、NGUI上显示出来

    Unity3d 不支持C#的线程直接调用Unity3D 主线程才能实现的功能.例如:给UGUI text 赋值.改变Color值等.怎样解决这个问题呢?使用一个Loom脚本. 按照惯例贴上代码. 首先 ...

  3. Unity3d之Socket UDP协议

    原文地址:http://blog.csdn.net/dingkun520wy/article/details/49201245 (一)Socket(套接字)UDP协议的特点 1.是基于无连接的协议,没 ...

  4. Unity3d基于Socket通讯例子(转)

    按语:按照下文,服务端利用网络测试工具,把下面客户端代码放到U3D中摄像机上,运行结果正确. http://www.manew.com/thread-102109-1-1.html 在一个网站上看到有 ...

  5. GJM: Unity3D基于Socket通讯例子 [转载]

    首先创建一个C# 控制台应用程序, 直接服务器端代码丢进去,然后再到Unity 里面建立一个工程,把客户端代码挂到相机上,运行服务端,再运行客户端. 高手勿喷!~! 完全源码已经奉上,大家开始研究吧! ...

  6. Unity3d网络游戏Socket通讯

    http://blog.csdn.net/wu5101608/article/details/37999409

  7. unity3D Socket连接C#server出现unity3D编辑器再次启动连接 unity3D编辑器马上卡死

    unity3D Socket与C#server第一次连接时通讯正常.客服端段关闭后.unity3D编辑器再次启动连接 unity3D编辑器马上卡死 原因是Socket处于异步状态,而异步线程是不受Un ...

  8. Unity3d socket通信 切换到web版本时报错SecurityException解决办法

    原文地址:传送门 今天苦战了一天,就跟一个Unity切换到web平台的socket通信出错苦苦纠缠了一天,问了好多大牛,但他们的回复都是我没搞过web平台下的通信或者我只专研于pc或者移动平台.看来没 ...

  9. Unity3d在线游戏Socket通讯

    网络游戏是一个人的互动娱乐软件应用.因为它是交互式,当然,需要了解对方的通信.这需要通信Socket:我们今天要实现的主角即套接字.Socket的英文原义是"孔"或"插座 ...

随机推荐

  1. cf #214div2

     Dima and Guards Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u S ...

  2. TimeSpan类【转】

    TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //获取当前时间的刻度数 //执行某操作 ............................ . ...

  3. how to translate the text of push button

    Background:In a project, the need to translate the buttons on the screen, as shown below,the followi ...

  4. .net TxetBox控件设置ReadOnly=True后台取值问题

    1.为TxetBox添加onfocus=this.blur()进行模拟 2.通过 Request.From["TextBox"].Trim()取值; 3.后台CS文件设置TextB ...

  5. php正则表达式匹配函数

    <?php function show($var=null){ if(empty($var))  { echo 'null'; }else if(is_array($var) || is_obj ...

  6. js、jquery、css使用过程中学到的一些方法技巧

    快速查看 1 动态创建script/link/style标签 2 在不适合使用iframe的情况下,让页面像iframe那样能分块滚动 3  鼠标在元素上时显示tip风格的提示信息 1.动态创建scr ...

  7. Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!

    在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: mesogene@mes ...

  8. 华为S5700基础配置----备份和恢复配置文件

    一:备份配置文件 设备作为FTP服务器,用户PC作为FTP客户端 # 配置设备的FTP功能及FTP用户信息. <HUAWEI> system-view [HUAWEI] ftp serve ...

  9. .NET之反射(1)

    .NET之反射 第一版 内容摘要 前言 反射 查看元数据 加载程序集 晚期绑定 方法调用 反射.晚期绑定和自定义特性的使用背景 参考资料 前言 关于反射的内容,向来是隐藏在C#高级编程类别中的大部头书 ...

  10. HTML代码中<%%>、<%=%>、<%:%>各是什么意思?分别用来实现什么的?

    运行.获取后台代码或值.<%%>之间可以写服务器端代码,比如 <% for(var i=0;i<10;i++){ //执行循环体 } %> 又如 <% for(va ...