簡體   English   中英

通過Python中相同文件/程序內的套接字進行客戶端服務器通信?

[英]Client server communication via sockets within same file/program in Python?

我需要制作一個在客戶端和服務器之間在同一程序之間來回通信的程序,但是按照以下說明進行操作: http : //woozle.org/~neale/papers/sockets.html,它一直在監聽,我看到了沒有印任何東西。

如何在同一文件中啟用基本的客戶端服務器功能?

#!/usr/bin/python           # This is server.py file
import socket               # Import socket module
import random
import os
import time as t

#open socket
s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = random.randint(0,65535)                # Reserve a port for your service.

if os.fork() == 0:
   #server
   s.listen(1)
   print 'about to listen'
   while 1:
      c = s.accept()
      cli_sock, cli_addr = c
      cli_sock.send("Hello to you! %s" % cli_addr)
elif os.fork() == 0:
   t.sleep(1)
   #client
   print 'in here2'
   s.bind((host, port))        # Bind to the port
   s.connect((host,port))
   s.send("Hello!\n")
   print s.recv(8192)
   s.close()

啟動偵聽器后立即進入無限循環,您將永遠不會碰到客戶代碼。 對於像這樣的玩具示例,您需要創建2個套接字對象,一個用於服務器,一個用於客戶端,然后在代碼中在它們之間來回乒乓。 除非它在並行線程/進程中運行,否則您不能像在這里那樣使用永久服務樣式循環,這樣就不會阻塞主線程的執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM