1.1 功能结构图   网络通信系统一共由4个模块组成,分别是点对点客户端.点对点服务端.服务器中转服务端.服务器中转客户端.这4个模块是成对使用的,点对点客户端和点对点服务端一起使用,服务器中转服务端和服务器中转客户端一起使用. 功能结构体如下图所示: 1.2 TCP.UDP编程流程 TCP_服务器端的一般步骤是: .创建一个socket,用函数socket(). .socket绑定本机的IP地址和端口号,用函数bind(). .开启监听,用函数listen(). .接收客户端上来的连接,用函…
本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类:  原文地址:TCP协议和socket API 学习笔记 作者:gilbertjuly  • TCP包头 ACK为1时,确认序号有效,表示期望收到的下一个序号,是上次成功收到的字节序加1. SYN, FIN都占用一个序号. • TCP连接的建立 client通过connect()来建立TCP连接,connect()会发送SYN报文: server通过bind().lis…
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1.A2和B2提供服务. Socket概述 ①   所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过“套接字”向网络发出请求或者应答网络请求. ②   Socket是连接运行在网络上的两个程序间的双向通信的端点. ③  …
基于TCP(面向连接)的Socket编程 一.客户端: 1.打开一个套接字(Socket); 2.发起连接请求(connect); 3.如果连接成功,则进行数据交换(read.write.send.recv): 4.数据交换完成,关闭连接(shutdown.close): 二.服务器端: 1.打开一个套接字(Socket); 2.将套接字绑定到服务器地址上(bind): 3.指定套接字为服务器套接字(listen),做好连接请求准备: 4.等待连接请求(connect); 5.如果连接请求到,则…
基于TCP(面向连接)的socket编程服务器端顺序: 1. 创建套接字(socket) 2. 将套接字绑定到一个本地地址和端口上(bind) 3. 将套接字设为监听模式,准备接收客户请求(listen) 4. 等待客户请求的到来:当请求带来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) 5. 用返回的套接字和客户端进行通信(send/recv) 6. 返回,等待另一个客户请求 7. 关闭套接字(closesocket)客户端程序: 1. 创建套接字(socket) 2.…
TCP协议可以说已经是IT人耳熟能详的协议,最近在学习socket网络编程时后重新温习一下这个协议,针对一些问题做了一些总结,很多理解可能还不是很准确. 1. 协议是什么?所谓的各种网络协议无非是一种通信标准,就好象两个人要说话,那么我们首先得规定一种语言,是中文还是英文,这样大家才能在接下来的交流中进行顺利的沟通.至于标准的实现是和代码操作系统无关的,具体从逻辑上怎么实现这个协议就是自己操作了,只要遵守协议标准,大家就能顺利的进行通信/交流. 2. 为什么会有协议分层?OSI有七层协议(实际通…
经过几天的努力,从完全不懂SMTP到折腾出个可以发送邮件内容和附件的DEMO.话少说,直接上代码. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.IO; namespace UtilSp.ClassLib { public class SmtpSp { #region Member #regio…
什么是socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议. 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的.   也有人将socket说成ip+port,ip是用来标识…
首先我们需要客户端和服务器端. 服务器端需要:1.创建ServerSocket对象.2.监听客户端的请求数据.3.获取输入流(对象流)即用户在客户端所发过来的信息.                               4.创建用户对象.5.判断用户信息是否正确.6.获取输出端,反馈用户信息.9.关闭流. 客户端需要:1.创建Socket对象.2.获取输出流(对象流).3.创建用户对象,并且赋值.4.将用户数据发送给服务器端.5.获取输入                          …
#服务端 #导入一个socket模块 import socket #想象成买手机打电话:socket.SOCK_STREAM 表示建立tcp连接 ,udp连接socket.SOCK_DGRAM #买了个手机 # 获取tcp/ip套接字 soc=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #插电话卡:绑定ip地址 传元组:(ip,端口号) soc.bind(('192.168.11.254',8080)) #如果写本机ip,局域网外部可以访问…