소켓 프로그래밍(TCP)
json이 저장한 형식에서 키 값은 반드시 더블 인덱스로 구분해야 한다
import json
# json
dic = {'name': 'lqz', 'xx': False, 'yy': None}
print(type(dic)) #
dic_s = json.dumps(dic)
#json
print(type(dic_s))# (json )
dic_s2 = str(dic)
print(dic_s2)
print(type(dic_s2)) # , json
json.dumps() # (json)
json.dump() # (json),
json.loads() # json
json.load() # json
# json ,
ss = 'falseee'# , ,(false,null, {}, [] )
ss = 'false'# bool
print(json.loads(ss))
print(type(json.loads(ss)))
ss = {'name': 'lqz', 'xx':False, "yy":None}
print(json.dumps(ss))
print(type(json.dumps(ss)))
'''
{"name": "lqz", "xx": false, "yy": null}
'''
소켓 프로그래밍(TCP)
###
import socket
# , socket
server = socket.socket()
# ,
server.bind(('127.0.0.1', 8003))
# ,
server.listen(5)
#
while True:
# , ,
# ,
conn, addr = server.accept()
#
while True:
# ,
data = conn.recv(1024)
conn.send(data.upper())
conn.close()
server.close()
#
import socket
client = socket.socket()
client.connect(('127.0.0.1', 8003))
#
while True:
msg = input('>>>:')
client.send(msg.encode('utf8'))
#client.send(bytes(msg, 'utf8')) #
data = client.recv(1024)
print(data)
client.close()
소켓 프로그래밍(TCP)(스티커 문제 해결)
패킷 문제: 제 이해는 TCP 프로토콜은 흐르는 물처럼 연속적이기 때문에 제 데이터 꼬리가 뒤에 있는 데이터 헤드와 연결되어 패킷을 형성할 수 있습니다.(TCP 프로토콜은 데이터 양이 적고 시간 간격이 짧은 데이터를 한꺼번에 보낸다)
자세한 내용은 >>>https://www.cnblogs.com/nickchen121/p/11031027.html
# _
import socket
import struct
import json
client =socket.socket()
client.connect(('127.0.0.1', 8003))
while True: #
msg=input(' ?>>:')
# 4 ,
head_len=struct.unpack('i',client.recv(4))[0]
#
dic=json.loads(client.recv(head_len))
l=dic['size']
name=dic['name']
count=0
data=b''
with open(name,'wb') as f:
while count=1024:
data_temp=client.recv(1024)
print(data_temp)
else:
data_temp=client.recv(l - count)
data+=data_temp
count+=len(data_temp)
f.write(data)
print(' ')
client.close()
# _
import socket
import os
import json
import struct
server=socket.socket()
server.bind(('127.0.0.1', 8003))
server.listen(5)
while True: #
# , , ,
conn,addr=server.accept()
while True: #
#
# {size:os.path.getsize(),name:'333.py',md5:asdfasdfasfd}
#
dic={'size':os.path.getsize('json .py'),'name':'xxxxxx.py'}
# bytes
dic_b=bytes(json.dumps(dic),'utf-8')
#
dic_b_len=len(dic_b)
obj=struct.pack('i',dic_b_len)
#
conn.send(obj)
#
conn.send(dic_b)
# + , rb
with open('json .py','rb') as f:
# conn.send(f.read())
# f ,
for line in f:
conn.send(line)
conn.close()
server.close()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.