Windows phone 之Socket

服务器端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace ServerConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立服务器端,通过创建一个TcpListener类型的实例来创建服务期短端
            Console.WriteLine("server is running...");

            IPAddress ip = , , ,  });
            //(1)使用本机Ip地址和端口号创建一个System.Net.Sockets.TcpListener类型的实例
            TcpListener listener = );
            //(2)开始侦听,开启对指定端口的侦听。
            listener.Start();

            Console.WriteLine("server is listening....");

            while (true)
            {
                //服务端获取客户端连接,可以在TcpListener实例上调用AcceptTcpClient()来获取与一个客户端的连接,
                //它返回一个TcpClient类型实例。此时它所包装的是由服务端去往客户端的Socket,而我们在客户端创建的TcpClient则是由客户端去往服务端的。
                TcpClient tcpClient = listener.AcceptTcpClient();
                Console.WriteLine("client connect:RemoteEndPoint:" + tcpClient.Client.RemoteEndPoint + "\nLocalEndPoint:" + tcpClient.Client.LocalEndPoint);
            }

        }
    }
}

客户端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;

namespace ClientConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建客户端,通过创建一个TcpClient的类型实例来创建客户端。
            //每创建一个新的TcpClient便相当于创建了一个新的套接字Socket去与服务端通信,.Net会自动为这个套接字分配一个端口号
            //共有两种连接方式,
            //(1)创建TcpClient类型实例时,可以在构造函数中指定远程服务器的地址和端口号。这样在创建的同时,就会向远程服务端发送一个连接请求(“握手”),
            //一旦成功,则两者间的连接就建立起来了。
            //(2)也可以使用重载的无参数构造函数创建对象,然后再调用Connect()方法,在Connect()方法中传入远程服务器地址和端口号,来与服务器建立连接。
            //而本程序使用的就是第二种。
            try
            {
                int i;
                ; i < ; i++)
                {
                    TcpClient client = new TcpClient();
                    client.Connect();

                    // 打印连接到的服务端信息
                    //TcpClient的Client属性返回了一个Socket对象,它的LocalEndPoint和RemoteEndPoint属性分别包含了本地和远程的地址信息。
                    Console.WriteLine("server is connected,\nRemoteEndPoint:" + client.Client.RemoteEndPoint + "\nLocalEndPoint:" + client.Client.LocalEndPoint);
                }
            }catch(Exception  ex)
            {
                Console.WriteLine(ex.ToString());
            }
            //多个客户端与服务端连接,因为我们说过一个TcpClient就是一个Socket,所以我们只要创建多个TcpClient,然后再使用connect()连接到服务器端即可。

            Console.ReadKey();
        }
    }
}
上一篇:python 对象转字典


下一篇:jQuery中的trigger和triggerhandler区别