Maison >développement back-end >Tutoriel Python >Comment Python implémente la transmission de données côté client et côté serveur (code)

Comment Python implémente la transmission de données côté client et côté serveur (code)

不言
不言original
2018-09-06 17:53:2530826parcourir

Le contenu de cet article explique comment Python implémente la transmission de données côté client et côté serveur. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Client

def sock_client_data():
    while True:
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect(('192.168.20.1', 6666))  #服务器和客户端在不同的系统或不同的主机下时使用的ip和端口,首先要查看服务器所在的系统网卡的ip
            # s.connect(('127.0.0.1', 6666))  #服务器和客户端都在一个系统下时使用的ip和端口
        except socket.error as msg:
            print(msg)
            print(sys.exit(1))
        data = input("input data:")   #输入要传输的数据
        s.send(data.encode())  #将要传输的数据编码发送,如果是字符数据就必须要编码发送
        s.close()
if __name__ == '__main__':
    sock_client_data()

Côté serveur

def socket_service_data():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('127.0.0.1', 6666))  # 在同一台主机的ip下使用测试ip进行通信
        # s.bind(('192.168.20.1', 6666))  #在不同主机或者同一主机的不同系统下使用实际ip
        s.listen(10)
    except socket.error as msg:
        print(msg)
        sys.exit(1)

    print("Wait for Connection..................")

    while True:
        sock, addr = s.accept()
        buf = sock.recv(1024)  #接收数据
        buf = buf.decode()  #解码
        print("The data from " + str(addr[0]) + " is " + str(buf))
        print("Successfully")
        # return buf
        # sock.close()
if __name__ == '__main__':
    socket_service_data()

Résultat d'exécution :

Client :

Comment Python implémente la transmission de données côté client et côté serveur (code)

Côté serveur :

Comment Python implémente la transmission de données côté client et côté serveur (code)

Instructions :
1 , le le serveur et le client utilisent 127.0.0.1 sous le même système du même hôte physique. Le port est défini par vous-même, tant qu'il n'est pas occupé. Vérifiez si le port est occupé sous le système Linux avec la commande sudo netstat -nap. | grep 6666. S'il est introuvable Le port prouve que le port n'est pas occupé. Créez deux fichiers .py, l'un est sender.py, qui stocke le programme client, et l'autre est recieve.py, qui stocke le programme serveur. Exécutez d'abord le programme serveur, puis exécutez le programme client une fois la connexion réussie, et. saisissez les données à transmettre, lorsque vous voyez les données transmises sur le terminal serveur, la transmission est réussie.
2. Si le serveur et le client se trouvent sous des systèmes différents sur le même hôte physique, utilisez l'adresse IP réelle du système serveur. L'auteur utilise Windows comme client et Linux comme serveur. Entrez ifconfig dans le terminal Linux. afficher l'adresse IP. Deux Le programme utilise la même adresse IP et le même port et déploie les deux programmes sur leurs systèmes respectifs. Exécutez d'abord le programme côté serveur, puis exécutez le programme côté client, envoyez des données et attendez que le serveur. les données secondaires sont reçues avec succès.

Recommandations associées :

Serveur et client de transfert de fichiers simples implémentés en Python

Client et serveur de téléchargement d'images php Fin de l'implémentation méthode,

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus