服务端:

import socket
sk = socket.socket() #创建对象
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #避免服务器重启时报address already in use错误
sk.bind(('127.0.0.1',8877)) #把地址绑定到套接字(ip地址,端口号)
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接
ret = conn.recv(1024) #接受客服端信息(数据长度)
print(ret) #打印客户端信息
conn.send(b'hi') #向客户端发送星系(必须是bytes类型)
conn.close() #关闭客户端连接
sk.close() #关闭服务器套接字

客户端:

import socket
sk = socket.socket() #创建对象
sk.connect(('127.0.0.1',8877)) #连接服务器(ip地址,端口号)
sk.send(b'hello') #向服务器发送信息(必须是bytes类型) ret = sk.recv(1024) #接收信息(数据大小)
print(ret) #打印信息
sk.close() #关闭对象

  有收必有发,收发必相等,send和rexv必须是对应的

    send  -----  recv

    send  -----  recv

    recv  -----  send

传递中文:

# 服务端
# 接收中文
ret = conn.recv(1024).encode('utf-8')
print(ret) #打印
# 发送中文
conn.send(bytes('七点半',encoding='utf-8')) # 客户端
# 发送中文
sk.send(bytes('几点了'.encode('utf-8')))
# 接收中文
ret = sk.recv(1024).encode('utf-8')
print(ret) #打印

实例:聊天

  服务端:

import socket
sk = socket.socket() #创建对象
sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #避免服务器重启时报address already in use错误
sk.bind(('127.0.0.1',8877)) #把地址绑定到套接字(ip地址,端口号)
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接 while True:
ret = conn.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
conn.send(b'bye')
break
info = input('>>>')
conn.send(bytes(info,encoding='utf-8')) conn.close() #关闭客户端连接
sk.close() #关闭服务器套接字

客户端:

import socket
sk = socket.socket() #创建对象
sk.connect(('127.0.0.1',8877)) #连接服务器(ip地址,端口号) while True:
info = input('>>>')
sk.send(bytes(info,encoding='utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret)
if ret == 'bye':
sk.send(b'bye')
break sk.close() #关闭对象

python_网络编程socket(TCP)的更多相关文章

  1. android 网络编程--socket tcp/ip udp http之间的关系

    网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络 ...

  2. UNIX网络编程——Socket/TCP粘包、多包和少包, 断包

    为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整.为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? TCP(transport cont ...

  3. python_网络编程socket(UDP)

    服务端: import socket sk = socket.socket(type=socket.SOCK_DGRAM) #创建基于UDP协议的socket对象 sk.bind(('127.0.0. ...

  4. 网络编程Socket之TCP之close/shutdown具体解释(续)

    接着上一篇网络编程Socket之TCP之close/shutdown具体解释 如今我们看看对于不同情况的close的返回情况和可能遇到的一些问题: 1.默认操作的close 说明:我们已经知道writ ...

  5. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

  6. Python_网络编程_socket()

    什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 详细资 ...

  7. 网络编程socket基本API详解(转)

    网络编程socket基本API详解   socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...

  8. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

  9. 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系

    [Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...

随机推荐

  1. 综合练习2 设置访问权限,Easy-IP访问外网,内外网访问

    实验拓扑图: 实验要求: 1.pc.路由.交换基本配置,vlan间路由互通. 2.vlan20.vlan30可以访问FTP,VLAN10不允许访问FTP. 3.AR1通过easy-ip方式实现私网地址 ...

  2. java Files 和 Path对文件操作

    1.拷贝文件 /** * 拷贝文件,生成新的文件名 * @param pathUpload * @return */ private String converUploadFileName(Strin ...

  3. java日志框架系列(7):logback框架Layout详解

    1.Layout layout从字面意思来看就是排版.布局咯. 1.Layout简介 功能:负责把事件转换成字符串.Layout接口的格式化方法doLayout()负责将代表任何类型的事件的转换成一个 ...

  4. 1190: 零起点学算法97——A == B ?(Java)

    WUSTOJ 1190: 零起点学算法97--A == B ? Description Give you two integer numbers A and B, if A is equal to B ...

  5. Linux虚拟机常用命令

    参考原文链接:(https://blog.csdn.net/fanyun_01/article/details/51083585) 一.Linux虚拟机常用命令 # virsh list //查看已打 ...

  6. element-ui 时间设置 获取固定的时间格式

    <el-date-picker v-model="time1" type="daterange" start-placeholder="开始日期 ...

  7. ajax回调函数,全局变量赋值后,ajax外无法获取的解决

    1 ajax回调函数内,function的执行与ajax外是异步的,常导致全局变量赋值后,再次使用此变量人无法获取. 所以,可以把需要的步骤,独立放在functuon中,在ajax回调函数中执行.可较 ...

  8. THUPC2019/CTS2019/APIO2019游记

    Day -? 居然还能报上thupc,我在队里唯一的作用大约是cfrating稍微高点方便过审.另外两位是lz和xyy. Day -2 我夫人生日! Day -1 lz和xyy的家长都来了带我飞.住在 ...

  9. Java QuickSort 快速排序

    Java QuickSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational ...

  10. XML-RPC-1概述

    XML-RPC是一个远程过程调用(远端程序呼叫)(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制.   中文名 XML- ...