Tạo một server đơn giản bằng python?

Em làm theo hướng dẫn bên Tutorialpoint, tạo một server như sau

#!/usr/bin/python3           # This is server.py file
import socket                                         

serversocket = socket.socket(
        socket.AF_INET, socket.SOCK_STREAM) 

# get local machine name
host = socket.gethostname()                           

port = 9999                                           

# bind to the port
serversocket.bind((host, port))                                  

# queue up to 5 requests
serversocket.listen(5)                                           

while True:
   # establish a connection
clientsocket,addr = serversocket.accept()      

print("Got a connection from %s" % str(addr))

msg='Thank you for connecting'+ "\r\n"
clientsocket.send(msg.encode('ascii'))
clientsocket.close()

Nhưng mà khi cho chạy thì xuất hiện lỗi này

đọc code không thấy chỗ nào có yêu cầu mở file “#” cả. Giúp em fixx với ạ :D.

Link bài viết của tutorialspoint: https://www.tutorialspoint.com/python3/python_networking.htm

Bạn bỏ dòng này đi, chạy trên win thì không cần thiết lắm

Ơ, thêm cái & làm cái gì thế nhỉ?

Cũng không biết nữa, thấy họ bảo làm thì làm thôi, theo như trong đó thì cái dòng python server,py & sẽ làm cho server chạy ở background

Mình thấy chỗ đó khá tào lao. Bạn thử bỏ đi xem

Nếu bỏ đi thì nó sẽ như này và con trỏ soạn thảo sẽ cứ nhấp nháy mãi không nhập được gì cả

bỏ đi sẽ bị như này :frowning:

Ơ thế bạn không chạy phía client à?
Mở thêm một Powershell nữa, chạy file client đi

Bạn cho mình xem file client.py của bạn được không? Nó ở đường dẫn nào?

cả hai file server.py và client .py mình đều lưu vào E:\NetworkPython\

#!/usr/bin/python3           # This is client.py file

import socket

# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

# get local machine name
host = socket.gethostname()                           

port = 9999

# connection to hostname on the port.
s.connect((host, port))                               

# Receive no more than 1024 bytes
msg = s.recv(1024)                                     

s.close()

print (msg.decode('ascii'))

Giờ bạn screenshot cho mình xem 2 files đó và content của 2 files đó

Mình chạy thử đây, chuột nhấp nháy là nó đang chạy rồi đó bạn. Nó mở cổng 9999 chờ connect vào

Bạn ấy bị lỗi vì không tìm thấy path chứ không phải do code.

file server:

file client:

Bật 2 powershell lên chạy ở thư mục đó, chạy file server.py, sau đó bật thêm một powershell nữa cũng ở chỗ đó chạy file client.py.
Screenshot nếu có lỗi

2 Likes

Oh được rồi bạn. Cám ơn nhé :blush:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?