//1.ip地址 2.端口3.委托对象 public void InitClient(string ip, int port, ldyReceiveCallBack rcb) { //接受委托对象 clientReceiveCallBack = rcb; //实例客户端的Socket 参数(IPV4 ,双向读写流,TCP协议) clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //实例化一个客户端的网络端点 IPAddress.Parse (ip):将IP地址字符串转换为Ip地址实例 IPEndPoint clientEP = new IPEndPoint(IPAddress.Parse(ip), port); //连接服务器 clientSocket.Connect(clientEP); //第一个是缓存 第二个 是从第几个开始接受 第三个 接受多少个字节 第四个 需不需要特殊的服务 第五个回调函数 第六个当前对象 clientSocket.BeginReceive(clientBuffer, 0, this.clientBuffer.Length, SocketFlags.None, new System.AsyncCallback(clientReceive), this.clientSocket); }
//初始化服务器 public void InitServer(ldyReceiveCallBack rcb) { //传入委托对象 serverCallBake = rcb; //初始化服务器端的套接字 serverSocket = new Socket(AddressFamily.InterNetwork /*IPV4*/, SocketType.Stream /*双向读写流(服务端可以发给客户 客户也可以发服务)*/, ProtocolType.Tcp /*TCP协议*/); //实例一个网络端点 传入地址和端口 IPEndPoint serverEP = new IPEndPoint(IPAddress.Any, 23456); //绑定网络端点 serverSocket.Bind(serverEP); //设置最大监听数量 serverSocket.Listen(2); //异步接受客户端的连接(CallBack) serverSocket.BeginAccept(new System.AsyncCallback(ServerAccept), serverSocket); //发送一个消息 表示服务器已经创建 serverCallBake("Server Has Init"); }