首先创建一个服务器

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. C#/winform 旅游管理信息系统

    工具:Visual Studio 2015,sql server2014 1.系统概述 该旅游管理信息系统可以为游客和公司业务管理员提供服务.游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具 ...

  2. Dollar Dayz(大数母函数,高低位存取)

    Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5655   Accepted: 2125 Descr ...

  3. iOS 各种传值方式

    属性传值 将A页面所拥有的信息通过属性传递到B页面使用 B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传到B页面. A页面DetailViewController.h ...

  4. jqery ajax读取json文件

    json文件数据 [ {"name":"哈哈··","email":"邮箱01","gender": ...

  5. javascript设计模式——Observer

    定义一种一对多的从属关系,当一个目标状态改变,所有他的从属对对象都将收到通知. 1.简单的Observer模式 实现 var Observer = function(){ this.list = [] ...

  6. HTML网页制作:[12]使用框架结构之frameset

    首先,我希望在你的目录下,有4个网页,各自显示不同的内容. 如图所示: 1.html显示“火影忍者” 2.html显示“英雄联盟” 3.html显示“嵌入式开发.网页开发.安卓开发” 4.html显示 ...

  7. Java文件IO操作应该抛弃File拥抱Path和Files

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...

  8. Android Studio之build.gradle小技巧

    一: 当你工程引用android 的support包的时候,常常会这样写: dependencies { compile 'com.android.support:recyclerview-v7:22 ...

  9. td太多内容显示...

    table style="table-layout:fixed;"td style="text-overflow: ellipsis;white-space: nowra ...

  10. Best Financing(HD4833)

    每笔收入产生的收益是独立的. 计算所有点的收益率,累计. #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<al ...