网络编程-socket

Posted danielyang11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程-socket相关的知识,希望对你有一定的参考价值。

网络编程之socket

一、为什么要学习socket

  首先我们python基础部分已经学完,而socket是我们基础进阶的课程,也就是说,你已经可以写一点小程序了,socket就是网络通信的工具,任何一门语言都有socket,他不是任何语言的专有名词,而是大家通过自己的程序与其他电脑进行联系并发送消息或者文件等操作就叫网络通信

 

二、客户端服务端架构

客户端:安装在你电脑上的qq、浏览器,当我们使用qq发送消息的时候,消息先发送到了腾讯,然后腾讯转发到你朋友的qq上,此时你的qq就是客户端,腾讯就是服务端。

a、硬件CS架构:打印机

b、软件CS架构:qq,微信,优酷等

多网站是基于浏览器访问的,浏览器和各个网站服务端进行通讯方式又被称为BS架构

三、socket

import socket
#创建一个socket对象
server = socket.socket()#相当于创建了一部电话
ip_port = (192.168.111.1,8001)#创建一个电话
server.listen(5)#监听着电话,能监听5个
print(111)#等着别人给我打电话,打来电话的时候,我就拿到了和对方的这个连线通道conn和对方的电话号码addr
conn,addr = server.accept()#阻塞住,一直等到有人链接我,链接之后得到一个元祖,里面是连线通道conn和对方的地址
print(222)
print(conn)

print(>>>>>>>>>,addr)
while True:
    from_client_data = conn.recv(1024) #服务端必须通过两者之间的连接通道来收消息
    from_client_data = from_client_data.decode(utf-8)
    print(from_client_data)
    if from_client_data == bye:
        break
    server_input = input(明威说>>>>:)
    conn.send(server_input.encode(utf-8))
    if server_input == bye:
        break
conn.close() #挂电话
server.close() #关手机
import socket
import time

client = socket.socket()
server_ip_port = (192.168.111.1,8001)

client.connect(server_ip_port)

while True:
    client_input = input(小文说>>>>:)
    client.send(client_input.encode(utf-8)) #给服务端发送消息
    if client_input == bye:
        break
    from_server_data = client.recv(1024)

    print(来自服务端的消息:,from_server_data.decode(utf-8))
    if from_server_data.decode(utf-8) == bye:
        break
client.close() #客户端挂电话

 注意:先运行server,然后再运行client

以上是关于网络编程-socket的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

Python--网络编程-----socket代码实例