服务端 vs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace echo
{
class Program
{
static void Main(string[] args)
{
//socket
Socket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//Bind
IPAddress ipAdr = IPAddress.Parse("127.0.0.1");
IPEndPoint ipEp = new IPEndPoint(ipAdr,1234);
listenfd.Bind(ipEp);
//Listen
listenfd.Listen(0);
Console.WriteLine("[服务器]启动成功");
while (true)
{
//Accept
Socket connfd = listenfd.Accept();
Console.WriteLine("[服务器]Accept");
//Recv
byte[] readBuff = new byte[1024];
int count = connfd.Receive(readBuff);
string str = System.Text.Encoding.UTF8.GetString(readBuff,0,count);
Console.WriteLine("[服务器接收]"+str);
//Send
byte[] bytes = System.Text.Encoding.Default.GetBytes("serv echo"+str);
connfd.Send(bytes);
}
}
}
}
客户端unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using UnityEngine.UI;
public class net : MonoBehaviour
{
//与服务端的套接字
Socket socket;
//服务端的IP和端口
public InputField hostInput;
public InputField portInput;
//文本框
public Text recvText;
public Text clientText;
//接收缓冲区
const int BUFFER_SIZE = 1024;
byte[] readBuff = new byte[BUFFER_SIZE];
public void Connetion()
{
//socket
socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//Connect
string host = hostInput.text;
int port = int.Parse(portInput.text);
socket.Connect(host,port);
clientText.text = "客户端地址" + socket.LocalEndPoint.ToString();
//send
string str = System.DateTime.Now.ToString();
byte[] bytes = System.Text.Encoding.Default.GetBytes(str);
socket.Send(bytes);
//recv
int count = socket.Receive(readBuff);
str = System.Text.Encoding.UTF8.GetString(readBuff,0,count);
recvText.text = str;
//close
socket.Close();
}
}