服务器:

第一步,准备socket套接字:Socket sockfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

第二步,准备Ip地址与端口号(为绑定做准备):IPAddress Ip = new IPAddress(new Byte[]{192.168.1.7});

:EndPoint point = new IPEndPoint(Ip,7788);

第三步,绑定Ip地址与端口号:sockfd.Bind(point);

第四步,监听客户端是否连接:sockfd.Listrn(1024);// 最大的连接数

第五步,记录及相应客户端的连接请求:Socket client_sockfd = sockfd.Accept();

第六步,向客户端发送数据:client_sockfd.Send(data);//data可能要做一些转换

第七步,接收数据:sockfd.Recv();

客户端与之相似,只需要做微小的改动即可。

客户端不需要绑定,只需要与服务器进行连接:sockfd.Connect(point); //sockfd是客户端的套接字

下面是一个没有用到线程的小示例:

Server

static void Main(string[] args)
        {
            Socket sockfd = new Socket(AddressFamily.InterNetwork,
                SocketType.Stream,ProtocolType.Tcp);
            // 准备IP
//          IPAdderss Ip = new IPAdderss(new byte[]{192,168,1,7});
            IPAddress Ip = IPAddress.Parse("192.168.1.7");
            // 准备端口号
            EndPoint point = new IPEndPoint(Ip,5678);
            //绑定
            sockfd.Bind(point);
            //监听客户端的最大连接数
            sockfd.Listen(1024);
            //响应客户端的连接请求和记录客户端的Ip地址和端口号
            Socket Client_sockfd = sockfd.Accept();
            string message = "hello socket!";
            //Byte[] data = new byte[1024];
            // 向客户端发送数据
            Byte[] data = Encoding.UTF8.GetBytes(message);
            Client_sockfd.Send(data);

// 接收客户端发送的数据
            Byte[] data2 = new byte[1024];
            int lenth = Client_sockfd.Receive(data2);
            string buf = Encoding.UTF8.GetString(data2, 0, lenth);
            Console.WriteLine(buf);

Console.ReadKey();
        }
    }

Client

static void Main(string[] args)
    {
        Socket sockfd = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        IPAddress Ip = IPAddress.Parse("192.168.1.7");
        EndPoint point = new IPEndPoint(Ip, 5678);

sockfd.Connect(point);
        // 接收服务器发来的消息
        Byte[] data = new byte[1024];
        int lenth = sockfd.Receive(data);
        string message = Encoding.UTF8.GetString(data,0,lenth);
        Console.WriteLine(message);
        Console.WriteLine("请输入要发送的数据:");
        string buf = Console.ReadLine();
        Byte[] sdata = Encoding.UTF8.GetBytes(buf);
        sockfd.Send(sdata);
        Console.ReadKey();
    }

}

C#中的socket编程方法的更多相关文章

  1. QT中的SOCKET编程(QT-2.3.2)

    转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...

  2. 读懂Java中的Socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  3. 读懂Java中的Socket编程(转)

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  4. java中的socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  5. QT中的SOCKET编程

    转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...

  6. Go中的Socket编程

    在很多底层网络应用开发者的眼里一切编程都是Socket,话虽然有点夸张,但却也几乎如此了,现在的网络编程几乎都是用Socket来编程.你想过这些情景么?我们每天打开浏览器浏览网页时,浏览器进程怎么和W ...

  7. 深入理解javascript中实现面向对象编程方法

    介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...

  8. python进阶---Python中的socket编程

    初识socket编程 一.前言 socket基于C\S架构(客户端\服务端)的编程模型,在Python中是以socket模块存在的. Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是 ...

  9. socket编程方法,概念

    "蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也.蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也." ------------------------------------- ...

随机推荐

  1. nopCommerce的源代码结构和架构

    下载地址 nopcommerce的源代码很容易拿到,它是开源的,所以你可以直接到网上下载.下载地址:http://www.nopcommerce.com/downloads.aspx 因为nop是国外 ...

  2. 创建线程(Background Thread)的N种方式

    第一.Thread类 Thread类是实例化线程的主要方法:一个Thread实例管理一个线程,即执行序列.通过简单实例化一个对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理. ...

  3. Events

    Events The idea behind Events is the ability to send data, as parameters, to interested Listeners an ...

  4. Input

    Input Basic Input Old Input Files Please note that both Input and Request do NOT sanitize your data, ...

  5. 快递查询API接口对接方法

    各类接口 快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据.目前常用的有快递鸟.快递100.快递网等. 快递鸟即时API可以查询3 ...

  6. php笔记03:布尔类型,字符串,浮点数

    1.布尔类型 下面情况都是看出false: 布尔类型FALSE自身 整型值为0 浮点型值为0.0 空字符串,以及字符串"0" 不包含任何元素的数组 不包含任何成员变量的对象(仅PH ...

  7. 写实例学习html5 WebSocket

    WebSocket简介  WebSocket是html5的重要特性.它是HTML5一种新的协议,实现了浏览器与服务器全双工通信(full-duplex).使服务器可以主动传送数据给客户端,对构建实时w ...

  8. centos_Error: Protected multilib versions_解决方法

    在yum命令后面加入忽略参数:--setopt=protected_multilib=false you can also use --setopt=protected_multilib=false ...

  9. 也谈一下Activiti工作流节点的自由跳转

    最近在搞openwebflow的工作流节点自由跳转功能,在网上看了一些资料,感觉不是很好,总结原因如下: 直接手动调用SqlSession的操作,感觉会漏掉一些重要的初始化操作(如:启动新节点之后加载 ...

  10. ASP.NET MVC 5入门小结

    1.前言        本人在读研究僧一只,老师那里使用的是ASP.NET的Web Forms技术,真的要感慨一句:尼玛太老旧了!之前耳闻Python的高效开发,曾经学过一点Python的Django ...