-
服务器端程序编写1
查看全部 -
Socket的通信过程,实际上就是TCP的通信过程,socket使用了TCP协议,所以通信过程是一样的。
socket可以适应多种网络协议,比较常见的就是UDP和TCP
查看全部 -
socket简介
查看全部 -
多线程 实现非阻塞
查看全部 -
扩展
发送端:
#coding=gbk import socket #实例化模块 sk = socket.socket() #定义连接ip和port ip_port = ('127.0.0.1',9999) #服务器连接 sk.connect(ip_port) #输入信息 msg_input = input("是否开始发送文件:yes/no") #发送消息并编码 sk.send(msg_input.encode()) #如果发送yes开始上传文件 if msg_input == 'yes': #打开文件 with open('ceshi.py','rb')as f: #按每一段分割文件 for i in f: #数据上传 sk.send(i) #等待接收完成标志 data = sk.recv(1024) #判断服务器端是否真正的接收完成 if data != b'success': print(data) break #给服务器端发送结束信号 sk.send('quit'.encode()) #否则关闭本地连接 else: #关闭连接 sk.close()
接收端:
#coding=gbk import socket #实例化模块 sk = socket.socket() #定义连接ip和 port ip_port = ('127.0.0.1',9999) #服务器绑定端口 sk.bind(ip_port) # 最大连接数 sk.listen(5) #while循环客户端连接 while True: # 等待客户端连接 conn,address = sk.accept() #接收发送端确认信息 da = conn.recv(1024) #如果发送端发送yes开始接收文件 if da == b'yes': # 一直使用当前连接进行数据发送 # 直到结束标志出现 while True: with open("file","ab")as f: #接收数据 data = conn.recv(1024) print(data) #如果接收数据信息是:quit则退出当前循环 if data == b'quit': print("文件接收完成!") break #否则写入数据 else: f.write(data) #发送接收完成标志 conn.send('success'.encode()) #否则退出当前循环 else: break #打印提示信息 print("关闭文件接收程序") #关闭连接 sk.close()
查看全部 -
family:地址簇
socket.AF_INET IPv4 (默认)
socket.AF_INET IPv6
socket.AF_UNIX 只能用于单一的Unix系进程间通信
type:
proto
查看全部 -
规范规定发给
查看全部 -
socket family参数,socket.AF_INET,socket.AF_INET6,socket.AF_UNIX
socket type参数,如图
查看全部 -
继承socketserver对象 重载三个方法查看全部
-
Socket参数
type 类型
socket.SOCK_STREAM 流式socket, for TCP
socket.SOCK_DGRAM 数据报式 socket, for UDP
socket.SOCK_RAW 原始套接字
socket.SOCK_RDM 可靠UDP形式
socket.SOCK_SEQPACKET 可靠的连续数据包服务
查看全部 -
Socket 参数
family地址簇
socket.AF_INET IPv4
socket.AF_INET6 IPv6
socket.AF_UNIX 只能够用于单一的Unix系统进程间通信
查看全部 -
socket编程
查看全部 -
tcp,socket通信过程
查看全部 -
简单TCP过程
第一次握手:客户端 发送SYN报文,设置随机数序号X,服务器由SYN=1知道,客户端要求建立联机
第二次握手:服务器端接收到客户端的报文之后,经过处理,返回给客户端SYN+ACK报文,同时设置随机序号Y,此时返回的报文确认ACK=X+1
第三次握手:接收到报文的客户端,会在处理确认之后,再发送一个报文给服务器端,此时确认为ACK=Y+1
服务器端接收到客户端发送的报文之后,会在服务器端与客户端形成一种通路,此后的数据就可以在这个通路上就可以传输。
其实就是TCP/IP三次握手链接,面试被问过,没说好。这次好好理解一下原理过程
查看全部 -
socket是电脑网络中进程间数据流的端点
分为UDP和TCP两种通信方式
查看全部
举报