首先创建一个服务器

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. Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)

    Cocos2d-x Lua演示样例 ActionEaseTest(动作)   本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下:   本系列 ...

  2. 《Effective C++》:条款46-条款47

    条款46请输入转换的时候,需要定义非模板成员函数 条款47请使用traits class表现类型信息 条款46:须要类型转换时请为模板定义非成员函数 条款 24提到过为什么non-member函数才有 ...

  3. 谈谈 css 的各种居中——读编写高质量代码有感

    css 的居中有水平居中和垂直居中,这两种居中又分为行内元素居中和块级元素居中,不同的居中用不同方法. 水平居中 1.行内元素水平居中(文本,图片) 给父层设置 text-align:center; ...

  4. LINQ 基本子句之一 (select/where/group/into)

    特别喜欢同事看到我写了一句小排序的时候说,他当然喜欢Linq了,虽然我只是baidu之,不知其然也不知其所以然. 基本格式 var<变量> = from <项目> in < ...

  5. Erp第三章:管理问题与MRP、MRP2、ERP

    1企业管理者经常头疼问题:一.“产供销”严重脱节 .       二.财务数据和业务数据对不上号 2.MRP(物料需求计划,Material Requiremengts Planning),MRP2( ...

  6. HTML——JAVASCRIPT——关灯效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. MVC 5 + EF 6

    (一) ??运算符 C#中两个问号(“?”)的作用是判断“?”左边的对象是否为null,如果不为null则使用“?”左边的对象,如果为null则使用“?”右边的对象. (二)VS安装Entity Fr ...

  8. 享受一下大神的感觉, unity中用C#自己封装dll

    第一次写博客,有什么不对的地方,欢迎大家指出 (1)打开vs(本人用的是vs2013)然后建一个项目,如下图所示,选择.ENT3.5的框架,或者低于3.5的,这是因为Unity里面用的框架可能在3.5 ...

  9. C#l连接OPC进行数据交互

    步骤 :引用 OPCNETAPI.DLL&&OPCNETAPI.COM.DLL 1.查询服务器      2. 连接服务器  3. 读取数据     4.写入数据 1.查询服务器 :根 ...

  10. 10个简单步骤,完全理解SQL

    此文章为转载 1. SQL 是一种声明式语言 首先要把这个概念记在脑中:“声明”. SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果.这是不 ...