導航:首頁 > IDC知識 > socket伺服器搭建

socket伺服器搭建

發布時間:2021-03-03 23:13:25

1、如何創建一個socket並進行通信

Socket是網路上運行的兩個程序間雙向通訊的一端,它既可以接受請求,也可以發送請求,利用它可以較為方便的編寫網路上的數據的傳遞。在java中,有專門的socket類來處理用戶的請求和響應。利用SOCKET類的方法,就可以實現兩台計算機之間的通訊。這里就介紹一下在JAVA中如何利用socket進行網路編程。 在Java中Socket可以理解為客戶端或者伺服器端的一個特殊的對象,這個對象有兩個關鍵的方法,一個是getInputStream方法,另一個是getOutputStream方法。getInputStream方法可以得到一個輸入流,客戶端的Socket對象上的getInputStream方法得到的輸入流其實就是從伺服器端發回的數據流。GetOutputStream方法得到一個輸出流,客戶端Socket對象上的getOutputStream方法返回的輸出流就是將要發送到伺服器端的數據流,(其實是一個緩沖區,暫時存儲將要發送過去的數據)。 程序可以對這些數據流根據需要進行進一步的封裝。本文的例子就對這些數據流進行了一定的封裝(關於封裝可以參考Java中流的實現部分)。 一、建立伺服器類 Java中有一個專門用來建立Socket伺服器的類,名叫ServerSocket,可以用伺服器需要使用的埠號作為參數來創建伺服器對象。ServerSocket server = new ServerS...
感覺這樣的提問沒有什麼意義
建議看看書,查查資料

2、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()

3、如何搭建 websocket伺服器

其實,在伺服器的選擇上很廣,基本上,主流語言都有WebSocket的伺服器端實現,而我們作為前端開發工程師,當然要選擇現在比較火熱的NodeJS作為我們的伺服器端環境了。
NodeJS本身並沒有原生的WebSocket支持,但是有第三方的實現(大家要是有興趣的話,完全可以參考WebSocket協議來做自己的實現),我們選擇了「ws」作為我們的伺服器端實現。
由於本文的重點是講解WebSocket,所以,對於NodeJS不做過多的介紹,不太熟悉的朋友可以去參考NodeJS入門指南(http://www.nodebeginner.org/index-zh-cn.html)。
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,把我們剛才構建好的HTTP實例傳遞進去就好。到這里,我們的服務端代碼差不多也就編寫完成了。怎麼樣?很簡單吧。
望採納!

4、如何在客戶端上建立一個Socket與伺服器端連接,包括連接的函數?

ClientSocket組件為客戶端組件。它是通信的請求方,也就是說,它是主動地與伺服器端建立連接。
ServerSocket組件為伺服器端組件。它是通信的響應方,也就是說,它的動作是監聽以及被動接受客戶端的連接請求,並對請求進行回復。
ServerSocket組件可以同時接受一個或多個ClientSocket組件的連接請求,並與每個ClientSocket組件建立單獨的連接,進行單獨的通信。因此,一個伺服器端可以為多個客戶端服務。
設計思路
本例包括一個伺服器端程序和一個客戶端程序。客戶端程序可以放到多個計算機上運行,同時與伺服器端進行連接通信。
本例的重點,一是演示客戶端與伺服器端如何通信;二是當有多個客戶端同時連接到伺服器端時,伺服器端如何識別每個客戶端,並對請求給出相應的回復。為了保證一個客戶端斷開連接時不影響其它客戶端與伺服器端的通信,同時保證伺服器端能夠正確回復客戶端的請求,在本例中聲明了一個記錄類型:
type
client_record=record
CHandle: integer; //客戶端套接字句柄
CSocket:TCustomWinSocket; //客戶端套接字
CName:string; //客戶端計算機名稱
CAddress:string; //客戶端計算機IP地址
CUsed: boolean; //客戶端聯機標志
end;
利用這個記錄類型數據保存客戶端的信息,同時保存當前客戶端的連接狀態。其中,CHandle保存客戶端套接字句柄,以便准確定位每個與伺服器端保持連接的客戶端;Csocket保存客戶端套接字,通過它可以對客戶端進行回復。Cused記錄當前客戶端是否與伺服器端保持連接。
下面對組件ServerSocket和ClientSocket的屬性設置簡單說明。
ServerSocket的屬性:
· Port,是通信的埠,必須設置。在本例中設置為1025;
· ServerTypt,伺服器端讀寫信息類型,設置為stNonBlocking表示非同步讀寫信息,本例中採用這種方式。
· ThreadCacheSize,客戶端的最大連接數,就是伺服器端最多允許多少客戶端同時連接。本例採用默認值10。
其它屬性採用默認設置即可。
ClientSocket的屬性:
· Port,是通信的埠,必須與伺服器端的設置相同。在本例中設置為1025;
· ClientType,客戶端讀寫信息類型,應該與伺服器端的設置相同,為stNonBlocking表示非同步讀寫信息。
· Host,客戶端要連接的伺服器的IP地址。必須設置,當然也可以在代碼中動態設置。
其它屬性採用默認設置即可。

5、編寫代碼,使用java ServerSocket創建伺服器端ServerSocket的過程。

伺服器端代碼:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public void server(){
        try {
            ServerSocket serverSocket = new ServerSocket(8888); //建立伺服器端的套接字,並監聽8888埠

            Socket socket = serverSocket.accept(); //如果有請求到達,則接受請求,並建立一個新的套接字
            InputStream is = socket.getInputStream(); //獲取此套接字上的輸入流,用於接收消息

            //接下來就是獲取套接字里的位元組流,並轉化為字元串
            byte[] bytes = new byte[1024];
            int count;
            StringBuilder sb = new StringBuilder();
            while((count = is.read(bytes)) != -1){
                sb.append(new String(bytes, 0, count));
            }

            is.close();
            System.out.println(sb.toString());

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        Server s = new Server();
        s.server();
    }

}

另附客戶端:

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;

public class Client {
    public void client(){
        try {
            Socket socket = new Socket(); //建立套接字
            socket.connect(new InetSocketAddress("127.0.0.1", 8888)); //連接到指定IP地址的主機,並指定埠號接收消息

            OutputStream os = socket.getOutputStream(); //獲取此連接上的輸出流,用於發送數據
            os.write(new String("Hello, world!").getBytes()); //將字元串轉化為位元組數組寫入輸出流
            os.flush();//刷新此輸出流,將位元組流寫入它們預期的目標
            os.close(); //關閉連接,否則會報連接重置異常
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Client c = new Client();
        c.client();
    }
}

6、android serversocket 伺服器該怎麼搭建

伺服器端是需要用ServerSocket的:

1創建ServerSocket和Socket
2打開連接到Socket的輸入輸出流
3按照協議進行Socket進行讀寫操作
4關閉輸入輸出流,關閉Socket

7、Socket編程如何搭建一個外網可以訪問的伺服器

搭建外網訪問,首先你要有一台外網可訪問的伺服器,有以下幾種方法可以實現。
一、購買外網伺服器。由於伺服器端使用JAVA語言開發,所以外網伺服器操作系統可以是Linux或Windows,這個需要你花錢購買。如果只是測試,你可以選擇購買阿里雲的雲伺服器,非常便宜。
二、還有一種方法就是你通過花生殼之類的軟體進行映射你的網路,但花生殼對長城寬頻之類的網路支持不是特別好,如果需要很好的支持,那也需要花錢購買。
三、如果你是通過路由器上網,並且可以操作路由器許可權且使用的是電信或者是聯通的網路,那可以直接在路由器裡面做埠映射,這個你可以百度一下,有很多文章講的非常清楚,這里篇幅限制,就不貼了。
四、如果你是直接通過貓上網且使用電信或聯通寬頻,那可以直接使用本機外網IP訪問你的程序。
以上四種方法中,最穩定的還是購買外網伺服器,其它都會有各種問題,你可以選擇其中適合你的一種方法。希望能幫助到你

8、怎樣在tomcat里建立socket服務

網上轉來的 不過我們以前也這么做的
沒現成代碼。 你研究試試

你自己寫一個servlet,在init方法中版進行監聽即可,在部署權文件web.xml中,將這個servlet設置為load-on-startup即可。如:
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.my.servlet.myServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet/*</url-pattern>
</servlet-mapping>
這樣,tomcat啟動時便載入這個servlet,其init方法會自動被調用

相當於server socket 寫在servlet里

具體可以百度"WEB伺服器啟動時載入一個ServerSocket服務"

9、如何搭建websocket伺服器

在伺服器的選擇上很廣,基本上,主流語言都有WebSocket的伺服器端實現,而我們作為前端開發工程師,當然要選擇現在比較火熱的NodeJS作為我們的伺服器端環境了。
NodeJS本身並沒有原生的WebSocket支持,但是有第三方的實現(大家要是有興趣的話,完全可以參考WebSocket協議來做自己的實現),我們選擇了「ws」作為我們的伺服器端實現。
由於本文的重點是講解WebSocket,所以,對於NodeJS不做過多的介紹,不太熟悉的朋友可以去參考NodeJS入門指南(http://www.nodebeginner.org/index-zh-cn.html)。
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,把我們剛才構建好的HTTP實例傳遞進去就好。到這里,我們的服務端代碼差不多也就編寫完成了。

10、如何建立socket5代理伺服器

(1)設置用戶驗證和記賬功能,可按用戶進行記賬,沒有登記的用戶無權通過代理服務版器訪權問Internet網。並對用戶的訪問時間、訪問地點、信息流量進行統計。
(2)對用戶進行分級管理,設置不同用戶的訪問許可權,對外界或內部的Internet地址進行過濾,設置不同的訪問許可權。

與socket伺服器搭建相關的知識