Exemplo n.º 1
0
    //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);
    }
Exemplo n.º 2
0
    //初始化服务器
    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");
    }