服务器端:

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();
        }
    }
}

Windows phone 之Socket的更多相关文章

  1. windows下的socket网络编程

    windows下的socket网络编程 windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了, ...

  2. windows下的socket网络编程(入门级)

    windows下的socket网络编程 clinet.c 客户端 server.c 服务器端 UDP通信的实现 代码如下 已经很久没有在windows下编程了,这次因为需要做一个跨平台的网络程序,就先 ...

  3. winsock教程- windows下的socket编程(c语言实现)

    winsock教程- windows下的socket编程(c语言实现) 使用winsock进行socket 编程     这是一个学习windows下socket编程(c语言)的快速指南.这是因为一下 ...

  4. 基于C++简单Windows API的socket编程(阻塞模式)

    1. 概述:简单的基于Windows API的socket点对点聊天程序,为了方便初学者,本文代码均采用阻塞原理编写. 2. 代码样例 Server.cpp(服务端) #include <cst ...

  5. Windows下通过socket进行字符串和文件传输

    今天在windows平台下,通过socket实现了简单的文件传输.通过实现这一功能,了解基本的windows网络编程和相关函数的使用方法. 在windows平台上进行网络编程,首先都需要调用函数WSA ...

  6. 一个简单的Windows下的socket程序

    服务器端代码server.cpp: #include <stdio.h> #include <WinSock2.h> #pragma comment(lib,"ws2 ...

  7. Linux下TCP网络编程与基于Windows下C#socket编程间通信

    一.linux下TCP网络编程基础,需要了解相关函数 Socket():用于套接字初始化. Bind():将 socket 与本机上的一个端口绑定,就可以在该端口监听服务请求. Listen():使s ...

  8. 成功使Linux服务端和Windows客户端建立socket通信

    一.准备工作 1.一台装有虚拟机的Windows7操作系统,虚拟机中装的是CentOS6.5版本的Linux 2.Windows7已经装有java环境 二.编码 使用java编写socket通信的服务 ...

  9. windows 与 Linux SOCKET通讯

    windows client 端口 // Def_win_client_socket_test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

  10. Linux和windows下内核socket优化项 (转)

    问题: No buffer space available Linux: vi /etc/sysctl.conf net.core.netdev_max_backlog = 30000  每个网络接口 ...

随机推荐

  1. msm8610 lcd driver code analysis

    ---恢复内容开始--- 1  lcd probe The probe sequence is determined by compilation sequence: mdss-mdp3-objs = ...

  2. The File's Owner

    The File Owner is an instantiated, runtime object that owns the contents of your nib and its outlets ...

  3. 17 Great Machine Learning Libraries

    17 Great Machine Learning Libraries 08 October 2013 After wonderful feedback on my previous post on ...

  4. ABAP SAPGUI_PROGRESS_INDICATOR 显示数据处理进度

    ABAP处理的数据量较大时,盯着一动不动的选择屏幕是不是很无聊?? LOOP AT I_TAB. DESCRIBE TABLE I_TAB[] LINES L_LIN. L_PERC = SY-TAB ...

  5. JavaScript-每隔5分钟执行一次ajax请求的实现方法

    个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 window.onload=function(){ //假设这里每个五分钟执行一次test函 ...

  6. c的基础 1. 无符号数和补码

    计算机中储存和处理的信息是以二进制信号表示的.单个的位不是是很实用,而将这些位 组合在一起,加上某种解释,即给不同的可能位模式赋予含义,我们就行表示怎样有限集合的元素,即实现各种数据结构.计算机中使用 ...

  7. SVN安装手册

    转:http://www.cnblogs.com/newsea/archive/2012/04/28/2474818.html 常用工具2012-04-04 21:24        by       ...

  8. TCP参数设置

    我们这里应用的是CentOS5.3,并内核使用的是2.6.18-128.el5PAE #1 SMP .修改部分TCP ,有的是为了提高性能与负载,但是存在降低稳定性的风险.有的则是安全方面的配置,则有 ...

  9. gdb调试运行时的程序小技巧

    使用gdb调试运行时的程序小技巧 标签: 未分类 gdb pstack | 发表时间:2012-10-15 04:32 | 作者:士豪 分享到: 出处:http://rdc.taobao.com/bl ...

  10. A Cross-Platform Memory Leak Detector

    Memory leakage has been a permanent annoyance for C/C++ programmers. Under MSVC, one useful feature ...