1、socket的伺服器端和客戶端的問題
簡單描述: 伺服器端是等待別人連接的一端.. 客戶端是主動連接的一端
兩個回QQ的例子:
1.兩個QQ都是客戶端
2.兩個QQ都連接答到騰訊的QQ伺服器上.
3.兩個QQ之間聊天..首先QQ1 將消息發到QQ伺服器上...再由QQ伺服器將消息發送到QQ2上
騰訊可以限制聊天內容:
.在QQ1發到QQ伺服器上時就進行過濾..如果聊天內容不符合要求..就不給你轉發到QQ2上..
程序源代碼:
調用connect的是客戶端..
2、linux下用socket實現伺服器與客戶端通信,高手進來幫忙看看!!急求!!
多看書阿...
用select或者poll或者epoll吧..還有一個類似的
功能就是,等待事件發生,比如某個socket(或者句柄)有了版數據什麼的,select可以權判斷出來,並且返回,讓你知道哪個socket出現事情了。他監聽的句柄范圍中沒事情發生時,進程或者線程就阻塞(超時時間可以設置).
這樣你就可以在select知道哪個出現數據之後,再去操作對應的socket
你說相互通信,干嗎還要中轉,自己用ip:port就好了阿...
要是大家都對伺服器有某個請求,伺服器端就用select吧..如果你處理的鏈接數很大,就用poll或者epoll吧,效果更好....剩下的自己去查資料...
3、SOCKET伺服器不斷給客戶端發送數據應該怎麼處理,專家進
你會socket編程嗎?
看你的邏輯很清楚 ,你只需要熟悉一下socket編程就行了.這個不是幾句話說清楚的.需要你自己學習.
4、現有socket服務端及客戶端,由於網路原因不能進行直連,需編寫一個socket中轉程序。java
剛寫了個demo,你可以參考一下
5、請教關於socket多個伺服器的問題
兩個錯誤和一點建議。
● 錯誤1 是按照題主的在問題里所描述的設計,網關伺服器根本沒有維持長連接的必要,只需要轉發消息給業務伺服器後跟 Client 的連接就可以斷開了,剩下的都是業務伺服器跟 Client 直接通信了。不知題主還有什麼關於維持長連接的必要沒有在問題里說明?
● 錯誤2 是如果維持長連接了,把 Client 的埠號轉發給業務伺服器了有什麼用?Client 的這個埠正在跟網關伺服器通信呢,業務伺服器怎麼可能通過這個埠跟 Client 建立連接?難道同一個埠還能被多個 Socket 佔用嗎?
● 建議 要麼改為業務伺服器不跟 Client 通信,還是經由網關伺服器中轉進行;要麼業務伺服器就需要跟 Client 進行「打洞」(Hole Punching)。
先說為什麼要「打洞」。對於處在同一子網下的計算機還好說,假如 Client 在子網 A 下,且 A 下有多態接入設備(最常見的就是走路由了),那麼 A 子網下的所有計算對於你的伺服器來說 IP 都是一樣的,所以你要想要穿過路由直接跟 A 子網下的某台計算機建立連接,就必須要先「打洞」。
再推薦幾篇有關 C# 打洞(Hole Punching)的資料:
http://www.csharpwin.com/csharpspace/2249.shtml
http://www.cnblogs.com/OpenCoder/diary/2011/06/29/2093895.html
http://www.csframework.com/archive/2/arc-2-20110612-1557.htm
http://blog.csdn.net/yoeoo/article/details/3195403
http://www.csharpwin.com/csharpspace/2248.shtml
6、我想實現在手機間通過socket實現通信功能(不需要伺服器做中轉什麼的),可以實現嗎??要怎麼做呢??
手機之間互相socket如果是內網之間是沒問題的,如果是廣域網存在很多專問題,涉及到網路穿透,屬直接連接是萬萬不行的。必須通過中間伺服器,實現了網路穿透連接,然後手機和手機才能直連。具體你可以查查百度 tcp 穿透。
7、服務端和客戶端如何進行跨網段socket通信
這個嘛得知道各自的抄ip和程序的編號,
然後伺服器綁定自己的ip和編號bind然後監聽連接請求 listen 客戶端申請所要鏈接的ip和對方的編號connect
這是tcp
udp就是都綁定各自的ip和程序的編號,誰主動connect,誰就是客戶端,伺服器端listen就行 ,這個傳輸數據快,但是不可靠,一般網頁播放的媒體影音,就是用。
跨網段,這個不用你操心,協議已經考慮到了。
8、serversocket()伺服器綁定到特定埠和IP是什麼意思,是伺服器自身的埠和IP,還是客戶端的埠和IP?
Socket啊 很久沒碰過了
樓主應該看看Socket的基本概念:
QQ以前是這樣的,第一次通信回的時候是從伺服器去做答中間轉接的,但後面的通話應該是不經過伺服器的。
聊天工具應該是即帶有服務端的功能(監聽對應的埠,不用IP哦,應該服務端的IP就是你自己網卡的IP嘛,還需要綁定啥,不是多此一舉么..java也是一樣的,服務端只需綁定埠就可以了)
同時聊天工具也是一個客戶端,因為你必須要把信息發送到對方那裡去,這里你就需要知道對方的IP和埠了。
你這個程序應該帶有幾個功能:
1.廣播
2.客戶端
3.服務端
就像飛秋那樣子
還有就是建議你先看看Socket編程的書,用不了多久時間的,總比在這SB等人答你問題好啊,知識還是要靠自己
9、socket如何通過代理伺服器通訊,在線等
1.客戶端連接到代理伺服器開放的埠;
2.客戶端向代理伺服器發送驗證申專請;
3.代理伺服器向客戶端屬發送一個數據包,從而客戶端得知自己的通信申請是否被批准;
4.客戶端向代理伺服器發送一個數據包,告知代理伺服器自己要連接的目的主機的地址和埠;
5.代理伺服器開始進行到目的主機的真正連接;
6.代理伺服器為客戶端開放一個新的埠並向客戶端發送一個數據包告知客戶端這個新的埠;
7.客戶端創建一個新的套接字並連接到代理伺服器的新的埠;
8.然後,代理伺服器把由新埠接收到的數據都轉發給目的主機,把從目的主機發過來的數據都由新埠轉發給客戶端。