服务器端
Socket
Bind()
Listen()
Accept()
Receive()
Send()
Close

建立套接字必须绑定用于TCP通信的本地IP地址和端口Bind(IPEndPoint address)

Listen(int backlog)   backlog 参数指出系统等待用户程序服务排队的连接数,超过连接数的任何客户都不能与服务器进行通行

Listen方法执行完后,服务器就做好了接收任何引进连接的准备,就是用Accept方法来完成的。Socket myClient = mySocket.Accect();

程序执行到Accept方法时会处于暂停状态,直到有客户请求连接,一旦有客户连接到服务器,myClient对象将包含与该客户通信的所有连接信息。此时客户机

服务器就可以调用Receive()方法和Send()方法来接收和发送数据了。

客户机
Socket
 
 
Connect()
Send()
Receive()
Close

对于客户端程序,客户机也必须把一个地址绑定到创建的Socket对象,不过它不使用Bind方法,而是使用Connect方法:

如:

IPAddress ip = IPAddress.Parse("127.0.0.1");
IPEndPoint iep = new IPEndPoint(ip, 8000);

Socket socket = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream, ProtocolType.Tcp);

socket.Connect(iep);

一旦建立连接,客户机就可以像服务器使用的方法一样,使用Send()和Receive()方法进行通信。注意通信完成后,必须先用ShutDown停止会话,然后再关

闭socket

如:

socket.ShutDown(SocketShutDown.Both);

socket.Close();

该方法允许Socket对象一直等待,直到将内部缓冲区的数据发送完为止。

转载于:https://www.cnblogs.com/eping/archive/2009/12/10/1621351.html

C#网络编程之面向连接的套接字相关推荐

  1. 网络编程之端口与套接字

    网络编程之端口与套接字 写给将来的自己看,对于其他人不敢保证可读性. 端口 概念与用途 端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口. 应用层进程通过系统调用与某个端口进行绑定, ...

  2. 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...

    本节书摘来自异步社区<UNIX网络编程 卷1:套接字联网API(第3版)>一书中的第2章,第2.1节,作者:[美]W. Richard Stevens , Bill Fenner , An ...

  3. 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版)

    图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) UNIX网络编程 卷1:套接字联 ...

  4. 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本TCP套接字编程

    UNIX网络编程--基本TCP套接字编程 socket 函数 connect 函数 bind 函数 listen 函数 accept 函数 fork 和 exec 函数 并发服务器 close 函数 ...

  5. JavaEE 网络编程示例1 UDP套接字数据报编程 == 一发一收

    鲁吼呀,胶己人! 文章目录 JavaEE & 网络编程示例1 & UDP套接字数据报编程 ==> 一发一收 1. 协议分层(回顾) 2. 套接字 Socket 2.1 UDP与T ...

  6. 《Unix网络编程卷1:套接字联网API》读书笔记

    第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...

  7. 《网络编程》基本 TCP 套接字编程

    在进行套接字编程之前必须熟悉其地址结构,有关套接字的地址结构可参考文章<套接字编程简介>.基于 TCP 的套接字编程的所有客户端和服务器端都是从调用socket 开始,它返回一个套接字描述 ...

  8. linux网络编程Internet Socket地址,套接字,和函数

    文章内容节选<linux/UNIX 系统网络编程> Internet domain socket地址有两种:IPv4 IPv6 IPv4被存储在结构体中, 该结构体在 netinet/in ...

  9. 2021版!万字UNIX网络编程学习笔记(套接字篇)

    目录 1.一个简单的时间获取服务器的程序 2.套接字篇 2.1 套接字简介 2.2 套接字中常用的函数 2.3 基本TCP套接字编程 2.3.1.socket函数 2.3.2 connect函数 2. ...

  10. 网络编程【UDP数据报套接字编程】

    目录 1.网络编程基础 1.1 为什么需要网络编程? 1.2 什么是网络编程 1.3 网络编程中的基本概念 2.Socket套接字 2.1 分类 3.UDP数据报套接字编程 3.1 DatagramS ...

最新文章

  1. LAMP的安装配置过程:
  2. 前后端分离与前后端不分离的区别
  3. 有限元笔记06-三维实体单元
  4. [数据结构-严蔚敏版]P65离散事件模拟(银行客户的离散事件驱动模拟程序)
  5. 【转】功能测试的经验总结
  6. Python学习之==第三方模块的安装、模块导入
  7. 数据结构——线性表的C语言实现
  8. eclipse 64位_如何安装调试 Java开发工具Eclipse和JDK环境
  9. 这些人生经验与常识相反
  10. Python学习笔记:闭包与作用域
  11. 使用linux_使用 AppImage 进行 Linux 软件包管理 | Linux 中国
  12. F-Stack KNI配置注意事项
  13. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
  14. 是男人就下100层【第二层】——帮美女更衣(2)
  15. 值班 查看及重启系统
  16. 有理数python_1034 有理数四则运算 (20分)(Python)
  17. 连载:面向对象葵花宝典:思想、技巧与实践(27) - 动态模型设计
  18. 下载分享永不关机 几步玩转家庭NAS组建
  19. 01.基于Irises的springboot项目框架(简版)
  20. 大学计算机应用能力基础,大学计算机应用基础

热门文章

  1. python基础: 选择语句
  2. 归并排序递归实现迭代实现
  3. docker 部署 gitlab最新版本( 当前 11.8.1通过验证)
  4. PHPCMS怎么创建单选按钮、复选框,并在模板里怎么接收和调用。
  5. 【SICP练习】80 练习2.52
  6. 支持向量机总结(SVM)
  7. 物联网培训总结(C#)
  8. 桑基图 python_手把手教你用 Python 绘制酷炫的桑基图!
  9. 苹果手机上网很慢_手机信号满格,但上网速度却很慢?来听听通信专家怎么说的...
  10. win10默认安装路径修改_问题解答|Win10电脑重启桌面图标就变乱的解决方法!