Python应用最广泛的要数web方面了。因此,socket显得十分重要。

要使用socket,必须引入socket模块,因此在Python脚本开头先写入

 import socket

学过socket的都知道,就是客户端和服务端的通信。

因此新建client.py和server.py文件。

先编写server.py文件:

 import socket

 # 创建 TCP 协议的套接字。
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接的 ip 地址。
host = '127.0.0.1'
# 目标端口。
port = 12345
address = ('127.0.0.1',12345)
# 监听目标地址上的端口。
server.bind(address)
# 最多同时接受 1 个连接请求。
server.listen(1) while True:
# 接受连接。若没有连接则阻塞进程
# server.accept() 返回的是一个 tuple。
# clientSocket, clientAddress = server.accept()
# 等价于
# temp = server.accept()
# clientSocket = temp[0]
# clientAddress = temp[1]
clientSocket,clientAddress = server.accept()
# 接收并进行解码。1024 指的是缓冲区的大小。
print(clientSocket.recv(1024).decode())
# 将字符串编码并发回客户端。
# 等价于
# clientSocket.sendall(b'reply')
clientSocket.sendall('reply'.encode())
# 关闭与客户端的连接。
clientSocket.close()
else:
# 关闭服务端监听端口的 socket。
server.close()

接下来编写client.py文件:

 import socket

 # 创建 TCP 协议的套接字。
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接目标端口,连接失败将引发 ConnectionRefusedError 类型的异常。
client.connect(('127.0.0.1',12345))
# 将字符串编码后发送至服务端。
# 等价于
# client.send(b'hello')
client.send('hello'.encode())
# 接收服务端的内容并解码输出。
print(client.recv(1024).decode())
# 关闭与服务端连接的套接字。
client.close()

编写完毕后,就可以运行了。

在server.py文件右键运行,接着在client.py文件右键再运行即可。

运行效果:

Python学习-15.Python的中的套接字socket的更多相关文章

  1. VC++学习之网络编程中的套接字

    VC++学习之网络编程中的套接字 套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程.应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问 ...

  2. Python学习day09 - Python进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  3. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  4. pythonl练习笔记——PythonNet 套接字socket

    1 套接字socket 1.1 套接字概述 套接字,一种网络通讯工具:用于进行网络间的通信,是一种特殊文件类型, 套接字,是一个通信链的句柄,用于描述IP地址和端口,实现向网络发出请求或应答网络请求. ...

  5. 面向对象之套接字(socket)和黏包

    一丶套接字(socket) tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 基于UDP协议的socket server端: import socket udp_sk = socke ...

  6. 传输模型,网络层次划分,三次握手,四次挥手,IP与端口,套接字socket

    了解套接字之前,需要先了解基本的传输模型 其次,还需要了解网络的七层划分和四层结构 在python中,数据链路层相当于硬件层,python不需要了解,只用在传输层进行学习就足够了 其中,传输层分为TC ...

  7. 套接字socket 的地址族和类型、工作原理、创建过程

    注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...

  8. 网络编程 套接字socket TCP UDP

    网络编程与套接字 网络编程 网络编程是什么: ​ 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 ​ 编写基于网络的应用程序的过程序称之为网络编程. 网络编程最主要的工 ...

  9. Java套接字Socket编程--TCP参数

    在Java的Socket中,主要包含了以下可设置的TCP参数. 属性 说明 默认值 SO_TIMEOUT 对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长 ...

随机推荐

  1. poj1182(带权并查集)

    题目链接:http://poj.org/problem?id=1182 题意:题目告诉有  3  种动物,互相吃与被吃,现在告诉你  m  句话,其中有真有假,叫你判断假的个数  (  如果前面没有与 ...

  2. Python3 len()方法

    Python3 len()方法  Python3 字符串 描述 Python len() 方法返回对象(字符.列表.元组等)长度或项目个数. 语法 len()方法语法: len( s ) 参数 s - ...

  3. java POI创建Excel示例(xslx和xsl区别 )

    Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...

  4. php中正则案例分析

    案例一如下: $regex='/[\s\S]*/'; $str='lemon'; $matches=array(); if(preg_match($regex,$str,$matches)){ var ...

  5. handler------post传送方式

    package com.qianfeng.gp08_day26_hanlder2; import android.os.Bundle; import android.os.Handler; impor ...

  6. ajax请求工具类

    ajax的get和post请求工具类: /** * 公共方法类 *  * 使用  变量名=function()定义函数时,如果在变量名前加var,则这个变量变成局部变量 */var Common = ...

  7. HDU_5688

    /* 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的每一个字符串,也都是这个人的名字. ...

  8. OSGi karaf-maven-plugin

    karaf-maven-plugin 1. 配制 karaf 启动时加载 bundle 项目中需要在 karaf 中集成 cxf-dosgi-discovery-distributed 特性,所以需要 ...

  9. Python3 urllib库和requests库

    1. Python3 使用urllib库请求网络 1.1 基于urllib库的GET请求 请求百度首页www.baidu.com ,不添加请求头信息: import urllib.requests d ...

  10. 使用kindeditor 4.1.7 编辑器 注意事项,上传图片失败 问题 ,

    <script charset="utf-8" src="editor/kindeditor.js"></script> <scr ...