使用python进行socket编程

2024-10-11 lqy python

tcp服务器

#TCP服务器端
import socket

#server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server=socket.socket()
server.bind(("localhost",6666))
print("服务器已启动,等待连接")
server.listen(1)
conn,add=server.accept()

while 1:
    recv=conn.recv(1024).decode("utf-8")
    print("来自客户端的数据:",recv)
    if recv=="N":
        break
    sendMes=input("发送数据:")
    conn.send(sendMes.encode("utf-8"))
    if sendMes=="N":
        break



TCP客户端

import socket
client= socket.socket()
client.connect(("127.0.0.1",6666))

while 1:
    sendMes=input("发送数据到服务器:")
    client.send(sendMes.encode("utf-8"))
    if sendMes=="N":
        break
    recv=client.recv(1024).decode("utf-8")
    print("来自服务端的数据:",recv)
    if recv=="N":
        break


UDP服务器

#UDP协议
import socket

server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(("localhost",8888))
while 1:
    data,addr=server.recvfrom(1024)
    data=data.decode("utf-8")
    print("收到数据:",data)
    if data=="N":
        break
    send_msg=input("请输入数据:")
    server.sendto(send_msg.encode("utf-8"),addr)
    if send_msg=="N":
        break


UDP客户端

#UDP协议
import socket

server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#server.bind(("localhost",8888))
while 1:
    send_msg=input("请输入数据:")
    server.sendto(send_msg.encode("utf-8"),("localhost",8888))
    if send_msg=="N":
        break
    data,addr=server.recvfrom(1024)
    data = data.decode("utf-8")
    print("收到数据:",data)
    if data=="N":
        break

抓包

from scapy.all import *

print(conf.ifaces)
#lists=[]
a=PcapWriter("cap2.cap",append=True)
def callback(p):
#    lists.append(p)
#    a.write(p)
    wrpcap("cap3.cap",p,append=True)
sniff(filter="",
      iface="Intel(R) Wi-Fi 6 AX200 160MHz",
      prn=callback,
      count=30
      )
# wrpcap("cap1.cap",lists)


标签: python

发表评论:

Powered by emlog