服务端代码

#! /usr/bin/python3
# -*- coding: UTF-8 -*-
import socket

def main():
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    host = "xxx.xxx.xxx.xxx" # 改为你云服务器的内网地址
    port = 10001             # 改为你的云服务器控制台安全组中打开的端口
    s.bind((host, port))

    s.listen()
    # 没有循环,只接受客户端的一次请求,请求结束程序结束。
    conn, addr = s.accept()
    conn.send("第一个socket demo".encode())
    conn.close()
    s.close()
    print(host)

if __name__ == '__main__':
    main()

客户端代码

import socket

def main():
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    host = "xxx.xxx.xxx.xxx"     # 改为你阿里云服务器的公网IP地址
    port = 10001                 # 改为你的云服务器控制台安全组中打开的端口,与服务端相同
    s.connect((host, port)) # 创建连接
    print(s.recv(1024).decode())

    s.close()

if __name__ == '__main__':
    main()

需要注意的点:

(1)server端代码中,host需要改为云服务器的内网地址,即使用ifconfig查到的地址

(2)client端代码中,host需要改为云服务器的公网地址,即你的服务器控制台中显示的公网地址。

(3)在使用端口之前需要在阿里云服务器控制台页面的安全组选项中打开该端口,注意你在你的Linux服务器内使用命令行开放端口的方式是行不通的。阿里云服务器如何添加安全组规则

Last modification:October 7th, 2020 at 12:19 pm
如果觉得我的文章对你有用,请随意赞赏