unity简单服务器和客户端
服务器
目的
在服务器收到客户端消息时返回一条消息
服务器搭建流程
1.创建一个服务器实例 Socket
2.创建一个IPAdress并为IPAdress添加地址
3.创建一个IPendPoint,并为IPEndPoint添加IPAdress和端口
4.为Socket绑定IPEndPoint
5.循环监听端口
6.收到消息并反馈
代码
Console
.WriteLine(
"hello world")
Socket listenfd = new Socket(AddressFamily
.InterNetwork, SocketType
.Stream, ProtocolType
.Tcp)
IPAddress ipAdr = IPAddress
.Parse(
"127.0.0.1")
IPEndPoint ipEp = new IPEndPoint(ipAdr,
12345)
listenfd
.Bind(ipEp)
listenfd
.Listen(
0)
Console
.WriteLine(
"服务器已经启动")
while (true) {
Socket connfd = listenfd
.Accept()
Console
.WriteLine(
"客户端:")
byte[] readBuff = new byte[
1024]
int count = connfd
.Receive(readBuff)
string str = System
.Text.Encoding.UTF8
.GetString(readBuff,
0, count)
Console
.WriteLine(
"服务器收到:" + str)
byte[] writebuff = System
.Text.Encoding.Default.GetBytes(
"服务器发送:" + str)
connfd
.Send(writebuff)
}
客户端
目的
向服务器发送数据并接受服务器端消息并显示
客户端搭建流程
1.创建一个Socket实例
2.为socket实例绑定服务器的IP地址和端口
3.给服务器发送消息
4.接受服务器的反馈
代码
在unity中UI中创建两个Input Field,一个输入服务器地址,另一个输入服务器端口。创建一个button,点击button启动connection
public void Connection() {
socket = new Socket(AddressFamily
.InterNetwork, SocketType
.Stream, ProtocolType
.Tcp)
string iptext = ip
.text.ToString()
int porttext = int
.Parse(port
.text.ToString())
socket
.Connect(iptext, porttext)
ip
.text =
"客户端地址:" + socket
.LocalEndPoint.ToString()
string str =
"hello world"
byte[] by = System
.Text.Encoding.UTF8
.GetBytes(str)
socket
.Send(by)
int count = socket
.Receive(readbuff)
string read = System
.Text.Encoding.Default.GetString(readbuff,
0, count)
text
.text = read
socket
.Close()