unity3d实现Socket
首先创建一个服务器
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的更多相关文章
- Unity3d C# Socket 下载文件 (同步到)
续篇 Unity3d C# HttpWebRequest 异步下载文件 ,由于project编译为IL2CPP的情况下仍然无效.提示HttpWebrequest 在当前版本号不支持.所以还是寻求其他的 ...
- Unity3D 使用Socket处理数据并将数据 在UGUI、NGUI上显示出来
Unity3d 不支持C#的线程直接调用Unity3D 主线程才能实现的功能.例如:给UGUI text 赋值.改变Color值等.怎样解决这个问题呢?使用一个Loom脚本. 按照惯例贴上代码. 首先 ...
- Unity3d之Socket UDP协议
原文地址:http://blog.csdn.net/dingkun520wy/article/details/49201245 (一)Socket(套接字)UDP协议的特点 1.是基于无连接的协议,没 ...
- Unity3d基于Socket通讯例子(转)
按语:按照下文,服务端利用网络测试工具,把下面客户端代码放到U3D中摄像机上,运行结果正确. http://www.manew.com/thread-102109-1-1.html 在一个网站上看到有 ...
- GJM: Unity3D基于Socket通讯例子 [转载]
首先创建一个C# 控制台应用程序, 直接服务器端代码丢进去,然后再到Unity 里面建立一个工程,把客户端代码挂到相机上,运行服务端,再运行客户端. 高手勿喷!~! 完全源码已经奉上,大家开始研究吧! ...
- Unity3d网络游戏Socket通讯
http://blog.csdn.net/wu5101608/article/details/37999409
- unity3D Socket连接C#server出现unity3D编辑器再次启动连接 unity3D编辑器马上卡死
unity3D Socket与C#server第一次连接时通讯正常.客服端段关闭后.unity3D编辑器再次启动连接 unity3D编辑器马上卡死 原因是Socket处于异步状态,而异步线程是不受Un ...
- Unity3d socket通信 切换到web版本时报错SecurityException解决办法
原文地址:传送门 今天苦战了一天,就跟一个Unity切换到web平台的socket通信出错苦苦纠缠了一天,问了好多大牛,但他们的回复都是我没搞过web平台下的通信或者我只专研于pc或者移动平台.看来没 ...
- Unity3d在线游戏Socket通讯
网络游戏是一个人的互动娱乐软件应用.因为它是交互式,当然,需要了解对方的通信.这需要通信Socket:我们今天要实现的主角即套接字.Socket的英文原义是"孔"或"插座 ...
随机推荐
- hdu 5595 GTW likes math(暴力枚举查询)
思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了. AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000 ...
- ASP.NETURL地址防注入过滤问题
首先在Global.asax.cs里面配置一个 提交事件 不用过滤所有的地址 过滤 GET POST的地址就行了 /// <summary> /// 防止sql注入 /// </s ...
- Linux下更新瑞芯微固件
有这样的需求,是因为提供的BSP中是在windows下烧写的系统.我直接在linux下开发,每次编译后代码都要在windows下烧写,是一个很麻烦的事情.为了解决这个问题我尝试着用VirtualBox ...
- 单调旋转数组的TopK问题
问题描述:输入一个单调旋转后的数组,求该数组中的第k小的元素. 分析:很多人看到这个题目会有点懵,可能读者不知道什么是旋转数组,我先解释下两个概念, 旋转数组的定义:把一个数组的前几项元素移动到数组的 ...
- T-SQL索引
索引 使用索引可以提高查询速度,不是越多越好,会损耗存储空间.应用于出现在where子句中的列建立索引.可以使用sql server 内置工具Profiler捕捉在SQL Server实例上执行的活动 ...
- Android 常用 adb 命令总结
Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...
- Oracle数据库按属性成绩查询
create or replace function bb return nvarchar2as-----------自定义游标类型type class_student is record( snam ...
- c++到c#数据类型的转换
c++与c#的类型转换 分类:cSharp | 标签: c# system intptr char uint 2012-02-29 19:54 阅读(513)评论(0)编辑删除 //c++: ...
- RouterOS(ROS)修改vrrp的mac地址
- <转>Java的一些历史
Java是一种固执己见的语言,它具有很好的可读性,初级程序员很容易上手,具有长期稳定性和可支持性.但这些设计决定也付出了一定的代价:冗长的代码,类型系统与其它语言相比显得缺乏弹性. 然而,Java ...