導航:首頁 > IDC知識 > socket伺服器轉發

socket伺服器轉發

發布時間:2021-01-23 13:49:54

1、java socket編程 伺服器端 信息轉發

以前抄寫的,伺服器和客戶端的源代碼:

http://hi.baidu.com/cliff77/blog/item/d819338f0162cae8f11f3660.html

http://hi.baidu.com/cliff77/blog/item/64055262040cbbdbe6113a63.html

2、關於java TCP socket 傳輸 伺服器轉發消息給客戶端,客戶端收到的消息與伺服器轉發的不一致

樓主,怎麼個不一致法,要看看如何的邏輯代碼。

3、socket編程。怎麼實現數據包的轉發?

C語言里的Sleep函數來可以實現DoEvent()的功源能
Remarks
A thread can relinquish the remainder of its time slice by calling this function with a sleep time of zero milliseconds.
一個線程能夠呼叫這個函數時把參數設置成為0實現放棄所擁有的剩餘時間片。

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

4、socket在制數據包轉發器時,為什麼一轉發由客戶端送過來的包,網站伺服器就會強制中斷連接?

代碼沒有錯。
你調試一下,伺服器端是否有把pTS->skClient關閉掉。或者客戶端有沒有把連接關閉掉。

5、Java socket 之服務端轉發消息

伺服器端一般抄會存儲所有襲會話信息(在啟動會話時),客戶端A發送信息給伺服器端 ,伺服器端進@OnMessage 方法,通過url傳參獲取發送對象。

調用代碼: 客戶端B的session .getBasicRemote().sendText("發送的信息");

6、socket編程。怎麼實現數據包的轉發?C語言版的。

我也不知道····只好復制一份···共同學習~~ 要寫網路程序就必須用Socket,這是程序員都知道的。而且,面試的時候,我們也會問對方會不會Socket編程?一般來說,很多人都會說,Socket編程基本就是listen,accept以及send,write等幾個基本的操作。是的,就跟常見的文件操作一樣,只要寫過就一定知道。對於網路編程,我們也言必稱TCP/IP,似乎其它網路協議已經不存在了。對於TCP/IP,我們還知道TCP和UDP,前者可以保證數據的正確和可靠性,後者則允許數據丟失。最後,我們還知道,在建立連接前,必須知道對方的IP地址和埠號。除此,普通的程序員就不會知道太多了,很多時候這些知識已經夠用了。最多,寫服務程序的時候,會使用多線程來處理並發訪問。我們還知道如下幾個事實:1。一個指定的埠號不能被多個程序共用。比如,如果IIS佔用了80埠,那麼Apache就不能也用80埠了。2。很多防火牆只允許特定目標埠的數據包通過。3。服務程序在listen某個埠並accept某個連接請求後,會生成一個新的socket來對該請求進行處理。於是,一個困惑了我很久的問題就產生了。如果一個socket創建後並與80埠綁定後,是否就意味著該socket佔用了80埠呢?如果是這樣的,那麼當其accept一個請求後,生成的新的socket到底使用的是什麼埠呢(我一直以為系統會默認給其分配一個空閑的埠號)?如果是一個空閑的埠,那一定不是80埠了,於是以後的TCP數據包的目標埠就不是80了--防火牆一定會組織其通過的!實際上,我們可以看到,防火牆並沒有阻止這樣的連接,而且這是最常見的連接請求和處理方式。我的不解就是,為什麼防火牆沒有阻止這樣的連接?它是如何判定那條連接是因為connet80埠而生成的?是不是TCP數據包里有什麼特別的標志?或者防火牆記住了什麼東西?後來,我又仔細研讀了TCP/IP的協議棧的原理,對很多概念有了更深刻的認識。比如,在TCP和UDP同屬於傳輸層,共同架設在IP層(網路層)之上。而IP層主要負責的是在節點之間(End to End)的數據包傳送,這里的節點是一台網路設備,比如計算機。因為IP層只負責把數據送到節點,而不能區分上面的不同應用,所以TCP和UDP協議在其基礎上加入了埠的信息,埠於是標識的是一個節點上的一個應用。除了增加埠信息,UPD協議基本就沒有對IP層的數據進行任何的處理了。而TCP協議還加入了更加復雜的傳輸控制,比如滑動的數據發送窗口(Slice Window),以及接收確認和重發機制,以達到數據的可靠傳送。不管應用層看到的是怎樣一個穩定的TCP數據流,下面傳送的都是一個個的IP數據包,需要由TCP協議來進行數據重組。所以,我有理由懷疑,防火牆並沒有足夠的信息判斷TCP數據包的更多信息,除了IP地址和埠號。而且,我們也看到,所謂的埠,是為了區分不同的應用的,以在不同的IP包來到的時候能夠正確轉發。TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作介面。就像操作系統會提供標準的編程介面,比如Win32編程介面一樣,TCP/IP也必須對外提供編程介面,這就是Socket編程介面--原來是這么回事啊!在Socket編程介面里,設計者提出了一個很重要的概念,那就是socket。這個socket跟文件句柄很相似,實際上在BSD系統里就是跟文件句柄一樣存放在一樣的進程句柄表裡。這個socket其實是一個序號,表示其在句柄表中的位置。這一點,我們已經見過很多了,比如文件句柄,窗口句柄等等。這些句柄,其實是代表了系統中的某些特定的對象,用於在各種函數中作為參數傳入,以對特定的對象進行操作--這其實是C語言的問題,在C++語言里,這個句柄其實就是this指針,實際就是對象指針啦。現在我們知道,socket跟TCP/IP並沒有必然的聯系。Socket編程介面在設計的時候,就希望也能適應其他的網路協議。所以,socket的出現只是可以更方便的使用TCP/IP協議棧而已,其對TCP/IP進行了抽象,形成了幾個最基本的函數介面。比如create,listen,accept,connect,read和write等等。現在我們明白,如果一個程序創建了

7、C語言Socket伺服器怎麼給客戶端發消息

socket 服務來器給指定的客戶端發自消息該怎麼處理(tcp)(c語言)
多個客戶端之間進行通訊,通過伺服器轉發的形式,現在客戶端1請求向客戶端2發送消息,先把消息發送到伺服器,伺服器怎麼才能把消息轉發到客戶端2而不是轉發給客戶端3或者他自己。

8、c#socket怎樣讓伺服器端轉發數據QQA,B(a發送數據到服務端,服務端立即轉發到b)

這個類似於聊天室的信息轉發,建議建立一個數據結構,如
[SerializableAttribute]
[ComVisibleAttribute(true)]

public class SendType

{
public string SendName {get;set;}
public string RecName {get;set;}
public string Data {get;set;}

}
新建一個結構回變數,public SendType SendData = new SendType();
SendData.SendName = "A";
SendData.RecName = "B";
SendData.Data = "Hello";
如此初始化答後,將變數序列化後,提取byte[]數組直接發送,伺服器再接收後再反序列化,轉發。
[SerializableAttribute]
[ComVisibleAttribute(true)]

兩個標記就是標記SendType類為可序列化,否則會造成不能序列化的編譯錯誤。

與socket伺服器轉發相關的知識