using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace Socket服务器
{
class Program
{
static void Main(string[] args)
{
//1.创建一个socket 对象
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//寻址方案,套接字类型
//2. 绑定一个ip 和端口
//IPAddress ipaddress = new IPAddress(new byte[] { 127,0,0,1 });
IPAddress ipaddress = IPAddress.Parse("192.168.1.102");
EndPoint endpoint = new IPEndPoint(ipaddress, 5000);
Console.WriteLine("IP:" + endpoint);
tcpServer.Bind(endpoint); //向操作系统申请一个可用的IP 和端口来通讯
// 3. 开始监听客户端的连接请求
tcpServer.Listen(100); //最多接收100个客户端链接请求
Console.WriteLine("服务器启动完成");
Socket clientSocket = tcpServer.Accept(); //暂停当前线程,直到一个客户端链接过来
Console.WriteLine("接收到客户端的链接请求");
// 4. 发送/接受消息
string message = "Hello Client";
var data = Encoding.UTF8.GetBytes(message); //将字符串转化成字节数组
clientSocket.Send(data);
Console.WriteLine("服务器向客户端发送一条消息:" + message);
byte[] data2 = new byte[1024]; //存放消息的字节数组容器
int length = clientSocket.Receive(data2);
string message2 = Encoding.UTF8.GetString(data2, 0, length);
Console.WriteLine("服务器接收到客户端发送过来的消息:" + message2);
Console.Read();
}
}
}
Unity 客户端
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using UnityEngine;
public class SocketClient : MonoBehaviour
{
private Socket tcpClient;
private string serverIP = "192.168.1.102";
private int serverPort = 5000;
// Use this for initialization
void Start()
{
tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//建立链接请求
IPAddress ipaddress = IPAddress.Parse(serverIP);
EndPoint endpoint = new IPEndPoint(ipaddress, serverPort);
tcpClient.Connect(endpoint);
Debug.Log("请求服务器连接");
// 接收/发送消息
byte[] data = new byte[1024];
int length = tcpClient.Receive(data);
var message = Encoding.UTF8.GetString(data, 0, length);
Debug.Log("客户端接收到消息:" + message);
// 发送消息
string message2 = "Client Say To Server Hello";
tcpClient.Send(Encoding.UTF8.GetBytes(message2));
Debug.Log("客户端向服务器发送消息:" + message2);
}
}