1 、先建立udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
2、利用sendto把数据并指定对端IP和端口,本端端口可以不用指定用自动随机的
udp_socket.sendto(“发送的内容”.encode(“utf-8”), (“192.168.2.121”, 8080))
3、关闭套接字
udp_socket.clise()
1 、先建立udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
2、绑定本机IP和端口
udp_socket.bind((“192.168.2.121”, 8080))
3、接收数据
recv_data = udp_socket.recvfrom(1024)
4、接收到的是两个数据分开打印出来
recv_message = recv_data[0]
recv_ip_port = recv_data[1]
print(“%s:%s” %(str(recv_ip_port), recv_message.decode(“gbk”)))
5、关闭套接字
udp_socket.clise()
1、建立套接字
send_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
2、指定服务器的IP和端口并连接服务器
send_socket.connect((“192.168.2.121”, 8081))
3、发送数据
send_socket.send(“发送内容”.encode(‘gbk’))
4、关闭套接字
send_socket.close()
1、建立套接字
send_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
2、绑定IP和端口
server_socket.bind((“192.168.2.121”, 8081))
3、监听端口
server_socket.listen(128)
4、接收客户端的到来,生成两个结果值:
一个新的套接字new_client和客户端的ip+端口
new_client, address_port = server_socket.accept()
5、用新的套接字接收数据
recv_data = new_client.recv(1024).decode(‘gbk’)
6、关闭新套接字
new_client.close()
7、关闭全局套接字
send_socket.close()
import socket
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
print("---------------input 'quit/exit' out process!-------------")
print("-----------------------------------------------------------")
send_result = input("please input result: ").strip()
if send_result == "exit":
break
elif send_result == "quit":
break
udp_socket.sendto(send_result.encode("utf-8"), ("192.168.2.121", 8080))
udp_socket.close()
if __name__ == "__main__":
main()
import socket
def main():
#创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#设置ip和端口
ip_port = ("192.168.2.121", 8080)
#绑定商品和IP
udp_socket.bind(ip_port)
#接收数据
while True:
recv_data = udp_socket.recvfrom(1024)
recv_message = recv_data[0]
recv_ip_port = recv_data[1]
#打印数据
print("%s:%s" %(str(recv_ip_port), recv_message.decode("gbk")))
#关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()
import socket
def send_data(udp_socket, send_ip, send_port):
#发送数据
send_result = input("please input result: ").strip()
udp_socket.sendto(send_result.encode("gbk"), (send_ip, int(send_port)))
def recv_datas(udp_socket):
#接收数据
recv_data = udp_socket.recvfrom(1024)
print("%s:%s===>%s" %(str(recv_data[1][0]), str(recv_data[1][1]),recv_data[0].decode('gbk')))
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(("192.168.2.121", 8082))
send_ip = input('please input ip address: ').strip()
send_port = input('please input port: ').strip()
while True:
print("---------------chat-------------")
print("---1:发送---2:接收---3:退出---")
option = input("please your select: ").strip()
if option == "1":
send_data(udp_socket, send_ip, send_port)
elif option == "2":
recv_datas(udp_socket)
elif option == "3":
break
else:
print("you input errer!")
continue
udp_socket.close()
if __name__ == "__main__":
main()
import socket
def main():
#建立套接字
send_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#指定服务器的IP和端口
address = input('ip address: ').strip()
ports = int(input('port: ').strip())
#连接服务器
send_socket.connect((address, ports))
#发送数据
send_data = input("input mes: ").strip()
send_socket.send(send_data.encode('gbk'))
#recv_data = send_socket.recv(1024)
#print(recv_data)
#关闭套接字
send_socket.close()
if __name__ == "__main__":
main()
import socket,subprocess
def main():
#建立套接字,tcp这个里面的套接字变量只用于绑定和监听
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定IP和端口
server_socket.bind(("192.168.2.121", 8081))
#监听端口
server_socket.listen(128)
while True:
print('========等待连接==========')
#接到到客户端连接后生成一个新的套接字,并接收到客户端的ip和端口address_port
new_client, address_port = server_socket.accept()
#程度运行后就一直处于accept阻塞等着客户端来连接
#有客户端连接上来了就打印出来连接的客户端ip和端口
print('=========客户端已连接上==========')
print(address_port)
#一直阻塞等客户端发数据过来
while True:
recv_data = new_client.recv(1024).decode('gbk')
#print(recv_data.decode('gbk'))
#只要有客户端数据发来,就马上回过去,这步不阻塞
if not recv_data: # 客户在离开时没有数据过来就认为关闭了
break
#接收客户端发来的内容转为指令
result = subprocess.getoutput(recv_data)
#把指令在本地执行的内容再返还给客户端,如ipconfig,把查到的ip信息返回
new_client.send(result.encode('gbk'))
#关闭套接字
new_client.close()
server_socket.close()
if __name__ == "__main__":
main()