我之前写博客是为了写而写,不管质量都乱写,有时间得去清理一下。
说来感觉自己好悲哀啊,出去实习没做过网游,也几乎没用Socket,所以现在在学校没事做必须多了解一些网络通信这类的东西,从头开始学吧,呵呵。下面这个例子第一个很简单,大家别笑我哈,我很菜的。这个例子是用Socket的TCP协议做的,当然也可以用UDP和TCPListener来做。也没用到多线程啊,呵呵,其实就是为了看看里面的一些函数而已。
Server.cs:
using UnityEngine;
using System.Collections;
using System.Net;
using System.IO;
using System.Net.Sockets;
using System.Text;
public class Server : MonoBehaviour {
void Start () {
OpenServer();
}
void OpenServer()
{
IPAddress ipAdr = IPAddress.Parse("10.56.03.32");
IPEndPoint ipEp = new IPEndPoint(ipAdr , 1234);
Socket serverScoket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
serverScoket.Bind (ipEp);
serverScoket.Listen(20);
while(true)
{
Socket client = serverScoket.Accept();
byte[] request = new byte[512];
int bytesRead = client.Receive(request);
string input = Encoding.UTF8.GetString(request,0,bytesRead);
print("server request:"+input);
string output = "连接服务器成功~~~~";
byte[] concent = Encoding.UTF8.GetBytes(output);
client.Send(concent);
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
}
Client.cs:
using UnityEngine;
using System.Collections;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class Client : MonoBehaviour {
void Start () {
ConncetServer();
}
void ConncetServer()
{
IPAddress ipAdr = IPAddress.Parse("10.56.03.32");
IPEndPoint ipEp = new IPEndPoint(ipAdr , 1234);
Socket clientScoket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
clientScoket.Connect(ipEp);
string output = "客户端请求连接~~~";
byte[] concent = Encoding.UTF8.GetBytes(output);
clientScoket.Send(concent);
byte[] response = new byte[1024];
int bytesRead = clientScoket.Receive(response);
string input = Encoding.UTF8.GetString(response,0,bytesRead);
print("Client request:"+input);
clientScoket.Shutdown(SocketShutdown.Both);
clientScoket.Close();
}
}
服务端:
1).用Socket()获得一个Socket描述
2).用Bind()j将Socket绑定到一个网络地址(一般都是本机的IP地址)
3).用Listen()开始在某个端口监听
4).Accept()等待客户连接,如果客户端调用Connect()函数连接服务器时Accept()会获得该客户端(Socket)。
5).Receive()接收数据
6).Send()发送数据
客户端:
1).用Socket()获取一个Socket描述
2).Connect()连接到远程主机
3).Send()发送数据
4).Receive()接收数据
分享到:
相关推荐
应用于unity的C# Socket客户端框架,包含完整的通用逻辑与常见的异常处理,可供新人学习使用。该代码并不能够直接运行,仅供阅读和参考。
Unity-Socket学习资料,C#编写的可以使用
30 } 31 } 服务端:1).用Socket()获得一个Socket描述2).用Bind()
Unity和Qt入门项目-基于Unity+Qt的Socket通信演示项目(学习Socket双向通信机制)源码.zip 本项目使用Unity3D作为物体模拟器,使用Qt作为数据接受,二者通过Socket通信来完成数据的传输。本项目的目的是为了熟悉Socket...
Python 3 和 Unity (C#) 之间的双向通信 - YT Elashry 如果您向我发送如何在您的项目中使用它,我们将不胜感激(例如机器学习)在 使用风险自负根据Apache License 2.0使用运行演示: 确保 server.py 和 UdpSocket....
Unity3D教程:学习Socket(二)2
C#socket异步通信客服端服务器源码及工程unity项目,适合用来学习研究
Unity C#自定义Socket通信协议脚本,代码有详细介绍,仅供参考学习使用
本篇课程主要针对于初学者,以及想要学习Socket联网功能的用户,以简单清晰的编码方式,让学习者快速学会该技术。
unity网络游戏开发学习demo源码,
为了让使用者能方便快速地学习和使用 HP-Socket,迅速掌握框架的设计思 想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、PACK 模型示例、性能测试示例以及其它编程语言示例)。
unity里面C#编写基于socket聊天室
使用Unity,基于TCP开发的一个简易的多人聊天室,可以实现聊天内容的多屏同步,正在学习Socket的初学者值得一看
实现一个轻量级的服务器逻辑框架:包含服务层,业务层,缓存层,数据层。 基于Socketi构建支持高并发的异步网络通信服务 可扩展的网络通讯协议设计 Mysql3数据库的操作与管理 客户端部分: 实现轻量级的客户端...
是以丛林战争视频,自己修改的服务器代码,再加上自己的注释,从第一步到第7步都是服务器的流程,第八步和第九步是为发送数据和处理数据
主要给大家介绍了关于C#中Socket与Unity相结合的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
通过 HTTP/2 支持 REST、WebSocket、Socket.IO、SignalR、SignalR Core、Server-Sent Events(以及更多)的自定义请求...些资源来自unity商店,仅限于个人学习研究,请勿用于任何商业用途,请支持或购买正版,尊重版权.
学习形式:录播视频+在线作业考核+助教一对一辅导答疑 1. C#基本语法:基本编程(If:…else)语句、数组等。2. C#面向对象编程:封装、继承、多态性、面向接口编程、动态多态性、字符串基础等。3. .Net 框架原理...
If you want a plugin that supports request customization for REST, WebSocket, Socket.IO, SignalR, SignalR Core, Server-Sent Events (and much more) out of the box, with regular updates and outstanding ...