Skip to content

UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 2: invalid decimal Unicode string #20

@SoungHun

Description

@SoungHun

Sever code

#-*- coding: utf-8 -*- 
#1번줄 지우지 말것. 한글 입력을 위한 필수 라인임

import socket               # Import socket module 라이브러리 삭제하지마시오
import os		    # filesize 알아내기 위한 라이브러리 삭제하지마시오
import struct
from thread import *
import threading

Path = 'C:\\File\\T_REX_FBX.fbx'
print 'Sever Start'

def getFileSize():
	"""
	파일 사이즈 알아내는 함수
	"""
	#size = os.path.getsize("./Assets/TocusTest00.fbx")
	size = int(os.path.getsize(Path))
	#return c_int(size).value #c 체계의 int 형태로 변환해주는 코드 필요하면 밑의 return 지우고 이 부분을 사용하셈
	return size


def Filethreaded(c):
        size = getFileSize()
        print 'size', size
        c.send(struct.pack("i", size))

        f = open(Path, 'rb')
        print 'File_Sending...'
        l = f.read(5000)
        while (l):
            print 'Sending...'
            c.sendall(l)
            l = f.read(5000)
        f.close()
def Main():
    host = '192.168.0.18'
    port = 10002
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    print 'socket binded to post', port
    s.listen(5)
    print 'socket is listening'

    c, addr = s.accept()
    print 'Got connection from', addr

    start_new_thread(Filethreaded, (c,))
    s.close()

if __name__ == '__main__':
    Main()


Client code
#-*- coding: utf-8 -*-

from socket import *
import os, sys

HOST = '192.168.0.18'
PORT = 10002
ADDR = (HOST, PORT)
BUFF_SIZE = 5000

clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect(ADDR)

### serverFile receive ###
serverData = clientSocket.recv(BUFF_SIZE)

serverFile = 'C:\\File\\SocketTest\\SocketTest.fbx'
with open(serverFile, 'wb') as f:
    print("serverFile opened...")
    count = int(int(serverData.decode("utf-8","ignore")) / BUFF_SIZE + 1)
    while count:
        data = clientSocket.recv(BUFF_SIZE)
        f.write(data)
        count -= 1
    f.close()
print("file received complete")

clientSocket.close()
print('connection closed')
sys.exit()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions