服务器同步套接字编程套路:
1.IP;
IPAddress ipAddress = IPAddress.Parse("192.168.0.1");
2.端口;
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress,7777);
3.创建监听套接字;
Socket listenSocket = new Socket(AddressFamily.InterNetWork,SocketType.Stream,ProtocolType.Tcp);
4.把套接字绑定到IP和端口上;
listenSocket.Bind(ipEndPoint);
5.启动监听;
listenSocket.Listen(5);//监听个数
print("已经开始监听了,等待连接进来");
6.承认连接:创建一个和客户端连接的套接字;
Socket connClientSocket = listenSocket.Accept();//阻塞
print("已经和" + connClientSocket.RemoteEndPoint + "连接上了");
7.通过和客户端连接的套接字进行发送和接收;
8.停止一切发送和接收,关闭客户端套接字;
connClientScoket.Shutdown(SocketShutdown.Both);
connClientSocket.Close();
9.关闭监听套接字
listenSocket.Close();
同步服务器端
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System;
public class newSocket : MonoBehaviour {
void Start () {
Socket listenSocket = null;
Socket connClientSocket = null;
try
{
//创建一个IP
IPAddress ipAddress = IPAddress.Parse("192.168.0.105");
//创建一个终结点(端口)
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress,7777);
//创建一个用于监听的套接字
listenSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定监听套接字到IP和端口上
listenSocket.Bind(ipEndPoint);
//开始监听
listenSocket.Listen(2);
print ("已经开始监听了,等待连接进来!");
//承认连接
connClientSocket = listenSocket.Accept();//阻塞
print("已经和" + connClientSocket.RemoteEndPoint + "连接上了");
//发送信息给客户端(//using System.Text;)
string str = connClientSocket.RemoteEndPoint + ":你好";
connClientSocket.Send (Encoding.UTF8.GetBytes (str));
print ("已经发送");
//接受客户端发来的信息
byte[] buf = new byte[1024];
print ("将要接收");
int len = connClientSocket.Receive(buf);//阻塞
print("已经接收");
//把接受的信息打印在控制台
print(Encoding.UTF8.GetString(buf,0,len));
}
catch(Exception e)
{
print (e.Message);
}
finally
{
//如果已经创建了客户端的连接
if (connClientSocket != null)
{
//关闭客户端的发和收的操作
connClientSocket.Shutdown (SocketShutdown.Both);
//关闭和客户端的连接
connClientSocket.Close ();
}
if (listenSocket != null)
{
//关闭监听套接字
listenSocket.Close ();
}
}
}
void Update () {
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System;
public class oldSocket : MonoBehaviour {
void Start () {
Socket connClientSocket = null;
try
{
//你要连接服务器的IP
IPAddress ipAddress = IPAddress.Parse("192.168.0.105");
//服务器的IP&Port(IP和端口)
IPEndPoint ipEndPoit = new IPEndPoint(ipAddress,7777);
//连接服务器的套接字
connClientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//连接服务器
connClientSocket.Connect(ipEndPoit);
print ("连接服务器成功!");
//接收
byte[] buf = new byte[1024];
int len = connClientSocket.Receive (buf);
print (Encoding.UTF8.GetString(buf,0,len));
//发送
string str = "你好";
connClientSocket.Send (Encoding.UTF8.GetBytes(str));
print ("发送成功");
}
catch(Exception e)
{
print (e.Message);
}
finally
{
if (connClientSocket != null)
{
//关闭操作
connClientSocket.Shutdown (SocketShutdown.Both);
//关闭套接字
connClientSocket.Close();
}
}
}
void Update () {
}
}