from socket import *
#创建套接字,默认参数
sockfd=socket()
#发起连接,服务器地址
server_addr=('localhost',8888)
sockfd.connect(server_addr)
#消息收发
while(1):
i=input('请输入指令(发送:1 结束:0):')
if i=='0':
break
sockfd.send(i.encode())
a=input('输入要发送的内容:')
sockfd.send(a.encode())
data=sockfd.recv(1024)
print('From server:',data.decode())
print('\n')
#关闭
sockfd.close()
import socket
#创建套接字
sockfd=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址
sockfd.bind(('localhost',8888))
#设置监听
sockfd.listen(5)
#等待处理
print('Waiting for connect...')
connfd,addr=sockfd.accept()
#收发消息
while(1):
data=connfd.recv(1024)
m=data.decode()
q=data.decode()
if m=='1':
data=connfd.recv(1024)
print('收到来自客户端的消息为:',data.decode())
n=connfd.send('收到该消息'.encode())
print('发送了%d字节数据'%n)
print('\n')
else:#关闭套接字
connfd.close()
sockfd.close()
break
from socket import *
HOST='localhost'
PORT=8890
ADDR=(HOST,PORT)
#创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM)
#收发消息
i = input('请输入指令(发送:1 结束:0):')
sockfd.sendto(i.encode(),ADDR)
msg,addr=sockfd.recvfrom(1024)
print('From server:',msg.decode())
sockfd.close()
from socket import *
#创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM)
#绑定地址
server_addr=('localhost',8890)
sockfd.bind(server_addr)
#收发消息
data,addr=sockfd.recvfrom(1024)
m = data.decode()
sockfd.sendto('thanks'.encode(), addr)
sockfd.close()
(1)从客户端输入一个学生的id、姓名、年龄、分数;
(2)将其发送到服务端,由服务端写入到一个文本文件中;
(3)每个信息占一行;
(4)数据传输分别使用TCP和UDP套接字完成。
from socket import *
#创建套接字,默认参数
sockfd=socket()
#发起连接,服务器地址
server_addr=('localhost',8889)
sockfd.connect(server_addr)
#消息收发
while(1):
i=input('请输入指令(发送:1 结束:0):')
if i=='0':
sockfd.send(i.encode())
break
sockfd.send(i.encode())
id=input('输入学生ID:')
name=input('输入学生姓名:')
age=input('输入学生年龄:')
score=input('输入学生成绩:')
stu=id+','+name+','+age+','+score
sockfd.send(stu.encode())
# sockfd.send(id.encode())
# sockfd.send(name.encode())
# sockfd.send(age.encode())
# sockfd.send(score.encode())
data=sockfd.recv(1024)
print('From server:',data.decode())
#关闭
sockfd.close()
import socket
#创建套接字
sockfd=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址
sockfd.bind(('localhost',8889))
#设置监听
sockfd.listen(100)
#等待处理
print('Waiting for connect...')
connfd,addr=sockfd.accept()
#收发消息
while(1):
data=connfd.recv(1024)
m=data.decode()
if m=='1':
# id=connfd.recv(1024)
# name = connfd.recv(1024)
# age = connfd.recv(1024)
# score = connfd.recv(1024)
# print('ID:',id.decode())
# print('姓名:',name.decode())
# print('年龄:',age.decode())
# print('成绩:',score.decode())
stu = connfd.recv(1024)
stu=stu.decode()
stu=stu.split(',')
id=str(stu[0])
name=str(stu[1])
age=str(stu[2])
score=str(stu[3])
print('ID:', id)
print('姓名:',name)
print('年龄:',age)
print('成绩:',score)
connfd.send('收到学生消息'.encode())
#写入文本
result =['学号:'+id+' '+'姓名:'+name+' '+'年龄:'+age+' '+'成绩:'+score]
with open('test_tcp.txt', 'a')as f:
f.writelines(result)
f.writelines('\n')
else:#关闭套接字
connfd.close()
sockfd.close()
break
from socket import *
HOST='localhost'
PORT=8890
ADDR=(HOST,PORT)
#创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM)
#收发消息
while True:
i = input('请输入指令(发送:1 结束:0):')
if i == '0':
sockfd.sendto(i.encode(),ADDR)
break
sockfd.sendto(i.encode(),ADDR)
id = input('输入学生ID:')
name = input('输入学生姓名:')
age = input('输入学生年龄:')
score = input('输入学生成绩:')
sockfd.sendto(id.encode(),ADDR)
sockfd.sendto(name.encode(), ADDR)
sockfd.sendto(age.encode(), ADDR)
sockfd.sendto(score.encode(), ADDR)
msg,addr=sockfd.recvfrom(1024)
print('From server:',msg.decode())
sockfd.close()
from socket import *
#创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM)
#绑定地址
server_addr=('localhost',8890)
sockfd.bind(server_addr)
#收发消息
while True:
data,addr=sockfd.recvfrom(1024)
m = data.decode()
if m == '1':
id,addr=sockfd.recvfrom(1024)
name, addr = sockfd.recvfrom(1024)
age, addr = sockfd.recvfrom(1024)
score, addr = sockfd.recvfrom(1024)
print('ID:', id.decode())
print('姓名:', name.decode())
print('年龄:', age.decode())
print('成绩:', score.decode())
sockfd.sendto('thanks'.encode(), addr)
result = str('学号:'+id.decode()+' '+'姓名:'+ name.decode()+' '+'年龄:'+ age.decode()+' '+'成绩:'+ score.decode())
# with open('test_udp.txt', 'r', encoding='utf-8')as f:
# for line in f:
# result.append(result + '\n')
with open('test_udp.txt', 'a')as f:
f.writelines(result)
f.writelines('\n')
else:
sockfd.sendto('通话结束'.encode(), addr)
break
sockfd.close()