服务器:

第一步,准备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. Vi、Vim及Gedit编辑器

    搜索(注意,不需要输入:号.也可以先输入:号再键入命令) /string……………………向后搜索,从光标处向文件尾搜索,按n键继续搜索下一个 ?string……………………向前搜索 注意:搜索时会将所 ...

  2. phpcms v9 模板标签说明整理

    1.{template "content","header"} 2.网站网址调用:{siteurl($siteid)}: 3.标签get:分页,{pc:get ...

  3. Models

    Models Models control the data source, they are used for collecting and issuing data, this could be ...

  4. gdb显示内存命令用法简介

    http://blog.csdn.net/allenlinrui/article/details/5964046

  5. 关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记

    并没有都读完,不过感觉还是有必要做一个笔记的,毕竟这只是随笔不是文章,所以可以有多少写多少,也算是工作总结了,最重要的是这个好在可以,完成所有有意义文档的检索,比起自己的word来说高级很多~~~. ...

  6. VS版本下载

    tfs2012:BVGTF-T7MVR-TP46H-9Q97G-XBXRB http://www.microsoft.com/zh-cn/download/details.aspx?id=30658 ...

  7. jemter接口测试之---接口测试的一些约定

      一.接口规范 1.前端请求接口 请求数据格式:appType =1&args ={json}&session =xxx&timestamp =now&sign =x ...

  8. uiautomator的坑和AAPT命令方式启动一个应用程序

    最近在使用UIautomator完成公司的一个主流程的自动化,因为不适用H5和IOS所以会放弃这个工具的使用,现在记录在使用uiautomator的一些问题: 案列1:使用命令去启动要运用的apk包 ...

  9. 面试之SQL

    1. 查询性能优化:从数据库查询数据时,你一定遇到过查询很慢的情况,请问你是怎么处理的. 答: 遇到的问题描述:是遇到过这种情况,我们给客户做过一款软件,日志库搜集了6000万条数据,显示.查询时候慢 ...

  10. spring3.2.0与mybatis3.2.7整合出错--Failed to read candidate component class--nested exception is java.lang.IllegalArgumentException

    错误信息如下: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate com ...