python 基于标准输入输出的通讯协议_python实现socket协议C/S,进行通信

服务端代码:

#!/usr/bin/python

import time, socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1', 999))

s.listen(5)

while True:

sock, addr = s.accept()

data = sock.recv(1024)

print(data.decode())

sock.send('Hello, %s!' % data.encode())

sock.close()

print('Connection from %s:%s closed.' % addr)

客户端代码:#!/usr/bin/python

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('127.0.0.1', 999))

s.send('hello'.encode())

print(s.recv(1024).decode())

函数

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)

参数Ⅰ --- 地址簇

AF_INETIPv4(默认)

AF_INET6IPv6

AF_UNIX     本地Unix系统进程间通信

参数Ⅱ --- 类型

SOCK_STREAM       TCP流式socket (默认)

SOCK_DGRAM          UDP数据报式socket

SOCK_RAW                原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以IP_HDRINCL套接字选项由用户构造IP头。

SOCK_RDM              一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。

SOCK_RAM                通常仅限于高级用户或管理员运行的程序使用。

SOCK_SEQPACKET        可靠的连续数据包服务

参数Ⅲ --- 协议

0                 协议号通常为零,可以省略,或者在地址族为AF_CAN的情况下,协议应为CAN_RAW或CAN_BCM之一。

serversocket服务器端的socket接口

Socket是建立网络连接时使用的,在连接成功时,应用程序两端zhi都会产生一个Socket实例dao

操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别

不因为在服务器端或在客户端而产生不同的级别,不管是Socket还是ServerSocket他们的

工作都是通过Socket类和其子类来完成的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值