当前位置: 首页> 常识>

socket编程是什么

时间: 2024-08-01 08:15:22

socket编程

什么是socket?

简称套接字,是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机

间的进程间通信,我们网络上各种各样的服务大多数是基于socket来完成通信的。

socket是基于C/S架构的,也就是说socket网络编程,通常需要写两个文件,一个服务端,一个客户端

Python中的socket通信逻辑如下图所示

在python中,用socket.socket()方法来创建套接字

s = socket.socket([family[, type[, proto]]])

参数说明:

family:套接字家族,可以使用AF_UNIX或者AF_INET

type:套接字类型,分为SOCK_STREAM或者SOCK_DGRAM,分别代表TCP和UDP

protocol: 一般不填默认为0

注意

1.python3以后,socket传递的都是bytes类型的数据,字符串需要先转换一下,string.encode()即可;另一端在接收数据的时候需要bytes转换成字符串,只要bytes.decode()一下就可以

2.在正常通信时,accept()和recv()方法都是阻塞的。所谓的阻塞,指的是程序会暂停在哪,一直等数据过来

socket编程思路

服务端 TCP

1 创建套接字,绑定套接字到本地IP与端口:

socket.socket(scoket.AF_INET,socket.SOCK_STREAM), s.bind()

2 开始监听链接:s.listen()

3 进入循环,不断接受客户端的链接请求:s.accept()

4 接收传来的数据,或者发送数据给对方:s.recv() , s.sendall()

5 传输完毕后,关闭套接字:s.close()

客户端

1 创建套接字,连接服务器地址:socket.socket(scoket.AF_INET,socket.SCOK_STREAM),s.connect()

2 连接后发送数据和接收数据: s.sendall(),s.recv()

3 传输完毕后,关闭套接字:s.close()

python的socket编程,通常可以分为TCP和UDP编程两种,前者是连接的可靠传输服务,每次通信都要握手,结束传输也要挥手,数据会被检验,是使用最广的通用模式;后者是不带连接的传输服务,简单粗暴

TCP编程

服务器端:

客户端:

虽然服务器和客户端在一对一的情况下,工作良好,但是,如果有多个客户端同时连接同一个服务器呢?结果可能不太令人满意,因为服务器无法同时对多个客户端提供服务。为什么会这样呢?因为Python的socket模块,默认情况下创建的是单进程单线程,同时只能处理一个连接请求,如果要实现多用户服务,那么需要使用多线程机制

相关推荐
  • 前女友已经放下的表现是什么(分手后对方这些表现,意味着已彻底放下)
    前女友已经放下的表现是什么(分手后对方这些表现,意味着已彻底放下)本着近水楼台先得月的观念,对于工作室的不少年轻男女来说,感情遇到挫折时,来找我谈心,几乎成了一种约定俗成的公司福利。对此我很无奈,但有时又觉得,能听听别人的故事也是件好事。最近对于我和公司新来的一个男孩小张来说,都是很难度过的一个星期。我的难熬源自于,我给出了与他所期待的答案完全相反的建议。而他的痛2025-08-13 05:10:10
  • 怎么和自己的丈夫调情(和男人调情的这些招数你会吗?女人都要学一下)
    怎么和自己的丈夫调情(和男人调情的这些招数你会吗?女人都要学一下)总有姑娘抱怨说不知道怎么吸引男人,怎么和男人调情互动,下面25种方法看完之后,你一点会有所收获~1、被自己吸引“魔镜魔镜告诉我,世界上最美的人就是我!”请相信我,当你迈出家门的前一刻,如果你对着镜子将这句咒语大声念上五遍,它真的会发挥神奇功效。有多立竿见影?从你出门遇到的第一个人的眼神中,就能看到了2025-08-12 12:06:18
  • 天秤座有多喜欢双子座(天秤和双子的爱~~~满满的爱满满的套路)
    天秤座有多喜欢双子座(天秤和双子的爱~~~满满的爱满满的套路)都说女生的套路防不胜防有些星座的爱是通过套路来表现的比如天秤和双子的爱那可真是满满的爱满满的套路越套路越爱越爱越套路双子这个人的套路就像是他对别人的好,必不可少一样,双子非常希望有人能接受他的好,并且赞颂他的好双子知道单凭付出是不能被人接受的,所以作为十二星座中难得的小机灵鬼,双子会格外用心的将自己2025-08-12 03:05:49
  • 男人没打算跟你在一起的表现(男人不想和你在一起的三种表现)
    男人没打算跟你在一起的表现(男人不想和你在一起的三种表现)女人,一定要找一个真心爱你的男人交往谈恋爱是两个人的事情,当你付出所有的时候你才发现,在这段感情当中,他什么都没有给你,永远都是嘴上说的爱你。从来都不包容你的错误,一旦发生矛盾就会吵架,最后闹到分手,每一次都是你最先服软,因为你爱他所以你离不开他任何一段感情如果付出和索取不平衡的话,最终都会走向分开2025-08-11 10:15:08
  • 男朋友一直忘不了前女友的原因(三点揭穿男性心理)
    男朋友一直忘不了前女友的原因(三点揭穿男性心理)随着社会的进步和生活方式的多样化,恋爱分手似乎已经成为了一种不可避免的现象。然而,有一种现象令人困惑,那就是为什么有些男人在和女友分手后总是难以忘怀?今天我将从男性心理的角度,揭穿这个现象背后的三个原因。男性独特的情感表达方式可能是导致他们难以忘怀前女友的一个重要因素。相比女性,男性不太擅长表达自己2025-08-11 01:30:41