多線程的伺服器搭建
1. java里多線程的客戶端與伺服器怎麼實現
伺服器監聽埠 做個無限循環 接到一個連接就創建一個通道線程,並將通道線程存儲到一個list集合中 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import
2. 關於多線程伺服器
你說你綁定和監聽都好了吧
那麼服務就可以這樣寫
while(bWorking)
{
SOCKET sAccept = accept(sListen, NULL, NULL);
if(sAccept != SOCKET_ERROR)
CreateThread(NULL, 0, ThreadProc, (LPVOID)&sAccept, 0, NULL);
}
相應的線程函數可以這樣:
DWORD WINAPI ThreadProc(LPVOID lpPara)
{
SOCKET sComm = *((SOCKET*)lpPara);
//從這里開始讀寫這個socket就可以了
}
這樣就實現了accept一個連接就創建一個線程。
3. 網吧電影伺服器如何搭建請教高手要詳細配置方法,謝謝
電影伺服器的架設不是很簡單地設置共享硬碟,然後拷些電影就OK了。為了最大化地利用網吧資源,順便把電影伺服器設為Web伺服器,建議配置為 P4 1.7GHz、256MB內存、200GB以上硬碟(可以買兩個酷魚五120GB的),系統建議裝Windows 2000 Server版,如果裝個人版的話,IIS只支持10個人瀏覽,如果裝高級伺服器版的話,會多安裝很多無用的東西,所以伺服器版的默認配置是比較適合100台以上網吧的。
240GB硬碟就已經可以放幾百部RM和AVI格式的電影了,並且7200轉的硬碟已經夠很多人同時讀硬碟了。有人曾建議使用SCSI磁碟但個人覺得沒這個必要,那樣做還要另外投資。
電影伺服器的建立方法
一種是使用專用的軟體,例如美萍VOD點播系統,此軟體是一套功能強大、使用簡單的VOD點播系統,其內置高效伺服器引擎,採用多線程、多並發流處理技術,客戶端支持Web界面點播或者應用程序界面點播兩種界面。支持目前所有流行的媒體格式,並且自動生成網頁文件,即使你設置了禁止下載也不會影響點播。惟一美中不足的就是電影放上去的時候是一級一級排放的,要是放個連續劇就很麻煩了。
另一種是使用ASP編的Web方式,利用共享或流媒體播放程序打開這些電影,例如「file�//電影伺服器名字/電影/百年好合」,這樣的好處就是可以把電影分類,並利於查找,此類編好的程序可到 http://down.vv66.com:82/show.asp?id=4783下載。然後順便再建一個FTP伺服器,大家電影多,要想資源共享一下,使用Serv-U這個軟體就可以很簡單地實現了。當然,在路由器上也要映射一下默認埠21,這樣,可以建一個主頁,然後通過路由器把80埠映射一下。
4. python怎樣建立socket伺服器
下面的例子是多線程實現的socket伺服器:
import socketimport threadingclass ThreadedServer(object):
def __init__(self, host, port):
self.host = host
self.port = port
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind((self.host, self.port))
def listen(self):
self.sock.listen(5)
while True:
client, address = self.sock.accept()
client.settimeout(60)
threading.Thread(target = self.listenToClient,args = (client,address)).start()
def listenToClient(self, client, address):
size = 1024
while True:
try:
data = client.recv(size)
if data:
# Set the response to echo back the recieved data
response = data
client.send(response)
else:
raise error('Client disconnected')
except:
client.close()
return Falseif __name__ == "__main__":
while True:
port_num = input("Port? ")
try:
port_num = int(port_num)
break
except ValueError:
pass
ThreadedServer('',port_num).listen()
5. 怎麼用多線程實現TCP並行伺服器,服務
伺服器監聽埠 做個無限循環 接到一個連接就創建一個通道線程,並將通道線程存儲到一個list集合中
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List; /* * 4.用socket通訊寫出多個客戶端和一個伺服器端的通訊, * 要求客戶發送數據後能夠回顯相同的數據(回顯功能)(實用TCP方式)。 */public class Test4Server { // 主入口 public static void main(String[] args) throws IOException { scoketServer(); } // 開啟的tcp8888監聽埠 public static void scoketServer() throws IOException { ServerSocket server = new ServerSocket(8888); while (true) { // 未連通前線程阻塞,連通後開啟一個socket通道線程後繼續監聽8888埠 Socket socket = server.accept(); System.out.println(socket.getInetAddress().getHostAddress() + "連接進入"); new SocketThread(socket).start(); } } } // 一個伺服器埠中監聽多個客服端通道線程class SocketThread extends Thread {// 所有通道寫入流的集合 private static List<PrintWriter> list =new ArrayList<PrintWriter>(); private BufferedReader bufferedReader; private PrintWriter printWriter; public SocketThread(Socket socket) throws IOException { this.bufferedReader = new BufferedReader(new InputStreamReader(socket .getInputStream())); this.printWriter = new PrintWriter(socket.getOutputStream()); list.add(printWriter); } @Override public void run() { String string = null; while (true) { try { // 伺服器在通道中讀到的信息回顯給客服端 string = bufferedReader.readLine(); System.out.println("客服端信息:" + string); for(PrintWriter printWriter:list ){ printWriter.write("伺服器回顯:" + string + "\r\n"); printWriter.flush(); } } catch (IOException e) { } } }}
6. 游戲的多線程伺服器怎麼如何設計
游戲伺服器多線程是有處理器決定的,一般來說線程越多性能也就越好,當然成本也就越高,你可以參考這款28線程(單CPU)的圖形工作站(用於設計)
產品型號:ZI2TW6-129913DP
產品類型:雙路十二核工作站
處 理 器:Xeon E5-2687W
V4×2
內 存:128G DDR4 REG ECC
硬 盤:SSD PCIe 2.0T
7. JAVA伺服器多線程工作
用一個while(true){}這樣一個循環,循環體里用accept()方法等待客戶端的連接,由於accept()沒有客戶連接時,後面的代碼是不會執行的,所以在accept後面寫上創建線程的代碼,這樣,沒一個連接就會創建一個新的線程,由於是while(true)死循環,所以會一直等待連接,一有連接就會處理建立線程對象,實現多線程
8. 2003搭建多線程FTP下載伺服器
ADSL是一種非對稱的DSL技術,所謂非對稱是指用戶線的上行速率與下行速率不同,上行速率低,下行速率高,ADSL 在一對銅線上支持上行速率512Kbps~1Mbps,下行速率1Mbps~8Mbps,有效傳輸距離在3~5公里范圍以內。
你要提高外網下載速度,只能更換成小區寬頻,而後使用動態域名的方式。
9. 如何創建TCP通信的伺服器端的多線程模型
一個線程監聽
然後每個連接新建一個線程
比較適合少量規模CS結構