socket | tcp客户端 tcp服务器 udp客户端 udp 服务器 创建方法

tcp服务器

#coding=utf-8
'''
这里是tcp服务器端,要先启动
'''
import socket
import threading

bind_ip  = "0.0.0.0"
bind_port = 9999

'''
"0.0.0.0"
在服务器端它表示
本机上的所有IPV4地址,如果一个服务有多个IP地址(192.168.1.2和10.1.1.12),那么我们如果设置的监听地址是0.0.0.0那么我们无论是通过IP192.168.1.2还是10.1.1.12都是可以访问该服务的。
在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
'''

# 创建服务器端的套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind((bind_ip,bind_port))

server.listen(5)

print "[*] Listening on %s:%d" % (bind_ip,bind_port)

# 用来跟客户端通信的
def handle_client(client_socket):

    # 接受客户端的信息
    request = client_socket.recv(1024)
    
    print "[*] Received: %s" % request    

    # 向客户端发送信息
    client_socket.send("这里是服务器端!")
    '''
    getpeername()用于得到与某个套接字关联的外地协议地址,说白了就是得到客户端
    '''
    print client_socket.getpeername()
    client_socket.close()


while True:

    client,addr = server.accept()
    
    print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])

    # 用多线程
    client_handler = threading.Thread(target=handle_client,args=(client,))
    client_handler.start()

tcp客户端:

#coding=utf-8
'''
这里是tcpd的客户端
需要服务器端先打开端口
'''
import socket
# 创建套接字对象 确定要连接的服务器
# target_host=input("请输入目标ip:")
# # print target_host
# target_port=input("请输入目标端口:")
target_host="127.0.0.1"
target_port=9999
clinet = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

clinet.connect((target_host,target_port))
clinet.send("这里是tcp客户端")
response = clinet.recv(4096)
print response

udp客户端:

#coding=utf-8
'''
这里是udp的客户端
需要服务器端先打开端口
'''
import socket

target_host="127.0.0.1"
target_port=9999
clinet = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

clinet.sendto("这里是udp客户端",(target_host,target_port))
response,addr = clinet.recvfrom(4096)
print "udp客户单开始执行"
print response
print addr

udp服务器:

# coding=utf-8
'''
import socket
import threading
from time import *
bind_ip = "0.0.0.0"
bind_port = 9999


# 创建服务器端的套接字
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

server.bind((bind_ip, bind_port))


print "[*] Listening on %s:%d" % (bind_ip, bind_port)

while True:

    data,addr=server.recvfrom(1024)
    server.sendto("这里是udp客户端")
    print "接收:",data

server.close()
待完善

 

posted @ 2019-09-10 21:12  东坡肉肉君  阅读(658)  评论(0编辑  收藏  举报