C#网络编程之面向连接的套接字
服务器端 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#网络编程之面向连接的套接字相关推荐
- 网络编程之端口与套接字
网络编程之端口与套接字 写给将来的自己看,对于其他人不敢保证可读性. 端口 概念与用途 端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口. 应用层进程通过系统调用与某个端口进行绑定, ...
- 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...
本节书摘来自异步社区<UNIX网络编程 卷1:套接字联网API(第3版)>一书中的第2章,第2.1节,作者:[美]W. Richard Stevens , Bill Fenner , An ...
- 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版)
图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) UNIX网络编程 卷1:套接字联 ...
- 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本TCP套接字编程
UNIX网络编程--基本TCP套接字编程 socket 函数 connect 函数 bind 函数 listen 函数 accept 函数 fork 和 exec 函数 并发服务器 close 函数 ...
- JavaEE 网络编程示例1 UDP套接字数据报编程 == 一发一收
鲁吼呀,胶己人! 文章目录 JavaEE & 网络编程示例1 & UDP套接字数据报编程 ==> 一发一收 1. 协议分层(回顾) 2. 套接字 Socket 2.1 UDP与T ...
- 《Unix网络编程卷1:套接字联网API》读书笔记
第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...
- 《网络编程》基本 TCP 套接字编程
在进行套接字编程之前必须熟悉其地址结构,有关套接字的地址结构可参考文章<套接字编程简介>.基于 TCP 的套接字编程的所有客户端和服务器端都是从调用socket 开始,它返回一个套接字描述 ...
- linux网络编程Internet Socket地址,套接字,和函数
文章内容节选<linux/UNIX 系统网络编程> Internet domain socket地址有两种:IPv4 IPv6 IPv4被存储在结构体中, 该结构体在 netinet/in ...
- 2021版!万字UNIX网络编程学习笔记(套接字篇)
目录 1.一个简单的时间获取服务器的程序 2.套接字篇 2.1 套接字简介 2.2 套接字中常用的函数 2.3 基本TCP套接字编程 2.3.1.socket函数 2.3.2 connect函数 2. ...
- 网络编程【UDP数据报套接字编程】
目录 1.网络编程基础 1.1 为什么需要网络编程? 1.2 什么是网络编程 1.3 网络编程中的基本概念 2.Socket套接字 2.1 分类 3.UDP数据报套接字编程 3.1 DatagramS ...
最新文章
- LAMP的安装配置过程:
- 前后端分离与前后端不分离的区别
- 有限元笔记06-三维实体单元
- [数据结构-严蔚敏版]P65离散事件模拟(银行客户的离散事件驱动模拟程序)
- 【转】功能测试的经验总结
- Python学习之==第三方模块的安装、模块导入
- 数据结构——线性表的C语言实现
- eclipse 64位_如何安装调试 Java开发工具Eclipse和JDK环境
- 这些人生经验与常识相反
- Python学习笔记:闭包与作用域
- 使用linux_使用 AppImage 进行 Linux 软件包管理 | Linux 中国
- F-Stack KNI配置注意事项
- SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
- 是男人就下100层【第二层】——帮美女更衣(2)
- 值班 查看及重启系统
- 有理数python_1034 有理数四则运算 (20分)(Python)
- 连载:面向对象葵花宝典:思想、技巧与实践(27) - 动态模型设计
- 下载分享永不关机 几步玩转家庭NAS组建
- 01.基于Irises的springboot项目框架(简版)
- 大学计算机应用能力基础,大学计算机应用基础
热门文章
- python基础: 选择语句
- 归并排序递归实现迭代实现
- docker 部署 gitlab最新版本( 当前 11.8.1通过验证)
- PHPCMS怎么创建单选按钮、复选框,并在模板里怎么接收和调用。
- 【SICP练习】80 练习2.52
- 支持向量机总结(SVM)
- 物联网培训总结(C#)
- 桑基图 python_手把手教你用 Python 绘制酷炫的桑基图!
- 苹果手机上网很慢_手机信号满格,但上网速度却很慢?来听听通信专家怎么说的...
- win10默认安装路径修改_问题解答|Win10电脑重启桌面图标就变乱的解决方法!