码迷,mamicode.com
首页 > 编程语言 > 详细

python socket

时间:2018-12-08 11:34:54      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:连接   设计   soc   引入   发送消息   应用   udp   sock   break   

套接字socket

  套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。

技术分享图片

技术分享图片

 

 

基于tcp下的socket

技术分享图片

 

server

import socket        #引入模块
server=socket.socket()    #创建server对象
ip_port=(192.168.15.78,8888)    #声明服务端的IP和程序端口
server.bind(ip_port)       #把ip_port绑定到对象
server.listen()       #监听
while 1:
    conn,addr=server.accept()    #等待客户端连接
    while 1:
        server_msg=input(服务端:)      
        conn.send(server_msg.encode(utf-8))    #向客户端发送消息
        from_client_msg=conn.recv(1024)      #接收客户端消息
        print(from_client_msg.decode(utf-8))
        if from_client_msg.decode(utf-8)==byebye:     #如果收到消息为byebye,就断开此次连接,继续等待下一个客户端连接
            break            #这就是优雅的断开
    conn.close()
server.close()

client

import socket
client=socket.socket()
server_ip_port=(192.168.15.78,8888)  #设置要连接服务端程序的IP和端口
client.connect(server_ip_port)    #进行连接
while 1:
    from_server_msg=client.recv(1024)     #接收服务端消息
    print(from_server_msg.decode(utf-8))
    client_msg=input(客服端:)    
    client.send(client_msg.encode(utf-8))     #向服务端发送消息
    if client_msg==byebye:            #如果输入为byebye,就断开连接
        break
client.close()

基于udp协议下的socket

技术分享图片

 

server

import socket
server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server_ip_port=(192.168.12.39,8888)
server.bind(server_ip_port)

while 1:
    from_client_msg, adrr = server.recvfrom(1024)
    print(来自%s的消息:%s%(adrr,from_client_msg.decode(utf-8)))
    if from_client_msg.decode(utf-8)==bye:
        break
    msg=input(请输入:)
    msg1=msg+,+from_client_msg.decode(utf-8).replace(sb,alexsb)
    server.sendto(msg1.encode(utf-8),adrr)

client

import socket
client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server_ip_port=(192.168.12.39,8888)
while 1:
    msg=input(请输入:)
    client.sendto(msg.encode(utf-8),server_ip_port)
    if msg==bye:
        break
    from_server_msg,adrr=client.recvfrom(1024)
    print(from_server_msg.decode(utf-8))
client.close()

 

python socket

标签:连接   设计   soc   引入   发送消息   应用   udp   sock   break   

原文地址:https://www.cnblogs.com/sea-stream/p/10086375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!