『壹』 java怎麼接收TCP/IP請求,只有socket那種方法嗎
還有ACE,不過很少用
『貳』 Java Web項目怎麼監聽socket請求
不知道具體需求是什麼。如果用java web作為服務端,那可以在web項目啟動的時候,增加socket監聽服務。在web項目的listener增加啟動類。
或者乾脆使用如netty這樣的IO框架。
『叄』 用JAVA寫一個SOCKET 接收TCP發來的消息
public class TalkServer{
static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
//創建一個ServerSocket在埠4700監聽客戶請求
}catch(Exception e) {
System.out.println("can not listen to:"+e);
//出錯,列印出錯信息
}
Socket socket=null;
try{
socket=server.accept();
//使用accept()阻塞等待客戶請求,有客戶
//請求到來則產生一個Socket對象,並繼續執行
}catch(Exception e) {
System.out.println("Error."+e);
//出錯,列印出錯信息
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket對象得到輸入流,並構造相應的BufferedReader對象
PrintWriter os=newPrintWriter(socket.getOutputStream());
//由Socket對象得到輸出流,並構造PrintWriter對象
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
//由系統標准輸入設備構造BufferedReader對象
System.out.println("Client:"+is.readLine());
//在標准輸出上列印從客戶端讀入的字元串
line=sin.readLine();
//從標准輸入讀入一字元串
while(!line.equals("bye")){
//如果該字元串為 "bye",則停止循環
os.println(line);
//向客戶端輸出該字元串
os.flush();
//刷新輸出流,使Client馬上收到該字元串
System.out.println("Server:"+line);
//在系統標准輸出上列印讀入的字元串
System.out.println("Client:"+is.readLine());
//從Client讀入一字元串,並列印到標准輸出上
line=sin.readLine();
//從系統標准輸入讀入一字元串
} //繼續循環
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
server.close(); //關閉ServerSocket
}catch(Exception e){
System.out.println("Error:"+e);
//出錯,列印出錯信息
}
}
}
『肆』 java Socket 長連接後,如何獲取發來的數據
用一個死循環等著socket傳數據過來,接一次數據循環一次,沒有接到數據時,就是自動等待了。
『伍』 java:ServerSocket中獲取所有連接上的Socket
可以的。
首先確保你已經建立了(對象名字是server),並接受到了連接:
ArrayList<Socket > sockets = new ArrayList<Socket>(); //保存所有接受的socket
while(true){ //一直接受連接
Socket s = server.accept();
sockets.add(s);
}
///得到仍處於連接當中的Socket
public ArrayList<Socket > getConnectedSockets(){
ArrayList<Socket > alivedSockets = new ArrayList<Socket>();
for(int i=0;i<sockets.size();i++){
if(sockets.get(i).isConnected()){
alivedSockets .add(sockets.get(i));
}
}
return alivedSockets;
}
『陸』 Java:這種是如何請求Socket的,第一次見
您好,一、建立伺服器類
Java中有一個專門用來建立Socket伺服器的類,名叫,可以用伺服器需要使用的埠號作為參數來創建伺服器對象。
ServerSocket server = new ServerSocket(9998)
這條語句創建了一個伺服器對象,這個伺服器使用9998號埠即在埠9998上注冊服務,這里稍微要注意的是埠的分配必須是唯一的。因為埠是為了唯一標識每台計算機唯一服務的,另外埠號是從0~65535之間的,前1024個埠已經被Tcp/Ip 作為保留埠,因此你所分配的埠只能是1024個之後的。當一個客戶端程序建立一個Socket連接,所連接的埠號為9998時,伺服器對象server便響應這個連接,並且server.accept()()方法會創建一個Socket對象。伺服器端便可以利用這個Socket對象與客戶進行通訊。
Socket incoming = server.accept()() ; // 監聽窗口,等待連接
進而得到輸入流和輸出流,並進行封裝
BufferedReader in = new BufferedReader(new
InputStreamReader(incoming.getInputStream()));
/*
當讀取文件時,先把內容讀到緩存中,當調用in.readLine()時,再從緩存中以字元的方式讀取數據(以下簡稱「緩存位元組讀取方式」)。
*/
PrintWriter ut = new PrintWriter(incoming.getOutputStream(),true);
隨後,就可以使用in.readLine()方法得到客戶端的輸入,也可以使用out.println()方法向客戶端發送數據。從而可以根據程序的需要對客戶端的不同請求進行回應。
在所有通訊結束以後應該關閉這兩個數據流,關閉的順序是先關閉輸出流,再關閉輸入流,即使用
out.close();
in.close();
二、建立客戶端代碼
相比伺服器端,客戶端要簡單一些,客戶端只需用伺服器所在機器的ip以及伺服器的埠作為參數創建一個Socket對象。得到這個對象後,就可以用"建立伺服器"部分介紹的方法實現數據的輸入和輸出。
Socket socket = new Socket("168.160.12.42",9998);
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678); // 向主機名為InetAddress.getLocalHost()的伺服器申請連接
客戶機必須知道有關伺服器的IP地址,對於著一點Java也提供了一個相關的類InetAddress 該對象的實例必須通過它的靜態方法來提供,它的靜態方法主要提供了得到本機IP 和通過名字或IP直接得到InetAddress的方法。
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
以上的程序代碼建立了一個Socket對象,這個對象連接到ip地址為168.160.12.42的主機上、埠為9998的伺服器對象。並且建立了輸入流和輸出流,分別對應伺服器的輸出和客戶端的寫入。
『柒』 java 如何從收到的socket中取得IP
首先知道socket類的對象的引用,然後調用該類的方法getInetAddress()就能夠獲取收到的socket對象的IP地址了。
『捌』 java 怎麼獲得socket流
public class Server {
public static void main(String args[]) throws IOException {
//為了簡單起見,所有的異常信息都往外拋
int port = 8899;
//定義一個ServerSocket監聽在埠8899上
ServerSocket server = new ServerSocket(port);
//server嘗試接收其他Socket的連接請求,server的accept方法是阻塞式的
Socket socket = server.accept();
//跟客戶端建立好連接之後,我們就可以獲取socket的InputStream,並從中讀取客戶端發過來的信息了。
Reader reader = new InputStreamReader(socket.getInputStream());
char chars[] = new char[64];
int len;
StringBuilder sb = new StringBuilder();
while ((len=reader.read(chars)) != -1) {
sb.append(new String(chars, 0, len));
}
System.out.println("from client: " + sb);
reader.close();
socket.close();
server.close();
}
}
『玖』 Java中伺服器端ServerSocket對象怎麼獲取伺服器端地址和埠號,怎麼獲取遠程請求的
ServerSocket s = new ServerSocket(8888);
while (true) {
// 建立連接
Socket socket = s.accept();
/ /getInetAddress()獲取遠程ip地址,getPort()遠程客戶端的斷後好
"你好,客戶端地專址信息: " + socket.getInetAddress() + "\t客戶端通信埠號屬: " + socket.getPort()
『拾』 JAVA Socket post請求方式
建議自己去讀下HTTP協議 POST 後邊是 頁面地址?參數字元串 ,只見到你的內參數字元串了,要提交到哪個地址容完全不知啊。而且翻譯的內容也並不是POST到翻譯頁面的,而是頁面通過ajax POST到網路翻譯介面的。直接訪問網路翻譯介面地址就行,網路翻譯頁面也是通過這個介面地址的。
http://fanyi..com/v2transapi
如果你了解HTTP協議或者想學習HTTP協議 你可以通過socket 或者 telnet來訪問頁面,如果你只是要功能的話,還是去用HTTPClient或者HttpURLConnection吧,畢竟省去不少代碼。