1、java中TCP伺服器連接資料庫查詢的問題
查詢獲得的結果是不是很大,本地返回很快,如果通過網路結果集很大的話就很慢,畢竟要握手之類的。
2、java代碼TCP/IP網路通信伺服器客戶端,實現雙方信息交互。
package com.weixin.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import org.junit.Test;
public class ScoketTest {
@Test
public void client() throws Exception{
InetAddress i=InetAddress.getByName("127.0.0.1");
Socket s=new Socket(i, 9000);
OutputStream outputStream = s.getOutputStream();
outputStream.write("服務端你好,我是客戶端哦!".getBytes());
s.shutdownOutput();
InputStream inputStream=s.getInputStream();
int length=0;
byte[] bytes=new byte[1024];
while ((length=inputStream.read(bytes))!=-1) {
System.err.println(new String(bytes,0,length));
}
inputStream.close();
outputStream.close();
s.close();
}
@Test
public void server() throws Exception{
ServerSocket serverSocket=new ServerSocket(9000);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
int length=0;
byte[] bytes=new byte[1024];
while ((length=inputStream.read(bytes))!=-1) {
System.err.println(new String(bytes, 0,length));
}
outputStream.write("客戶端你好,本王已收到!".getBytes());
outputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
}
}
3、求java網路高手,tcp最大連接問題
網路上來盛傳的那個改連接數,我認自為基本上沒用,關鍵是你要了解他的原理,
它的作用是改變單位時間內的並發連接數,也就是說你寫個程序,想要在1秒內連接超過50(假設)此連接,是不被允許的,你只能達到10個,我認為一般應用足夠了,比如下載應用,1秒不夠,稍後軟體都會重試,並不會影響你的下載速度,像windows 2003這樣的操作系統,是不會做此限制的,作為伺服器,它的目標就是提高網路吞吐量。
這樣解釋能明白否?
4、java網路編程中,對於客戶端和伺服器的tcp連接,如果客戶端異常斷開連接,伺服器端如何獲知,有什麼方法?
這個得用java心跳處理機制。就是客戶端每隔一段時間向伺服器發送指定信息,如果伺服器沒有收到客服端發來的信息,這時伺服器和客服端連接就已經斷開。具體的心跳實現百度上很多。
5、java中,用哪一個類來表示tcp協議的伺服器socket對象
服務端監復聽:ServerSocket server=new ServerSocket(port);//port:綁定的端制口號
Socket client=server.accept();//監聽埠,一旦取得連接則獲得客戶端的socket連接對象client
客戶端: Socket s=new Socket(ip,port);//要連接的伺服器的ip以及埠號
如果正常連接上之後,socket的對象可以獲得InputStream和OutputStreame,然後就可以進行通信了
完成通信之後,執行socket對象的close()方法關閉連接,完成一次完整的socket連接
6、有個Java 項目,通過Socket Tcp長連接通信方式向伺服器發送消息。
你這消息頭、消息體的結構格式都定下來了,總長度就是固定的啊?消息體的長專度不是一共2+2+4+1=9個位元組么屬?消息格式肯定要按照服務端的要求進行發送,明顯服務端不是java的程序。。但是java里是沒有Unsigned Integer這種數據類型的(java的stream操作里提供了一些unsigned的方法,或者自己寫方法來生成對應的位元組格式),你可以按照他的要求,使用位元組數組封裝好,然後發送。
針對這個示例消息,你可以:
創建一個長度為9的位元組數組。把「9」變成byte放入前兩個位元組(前兩個位元組數據應該為:0x00, 0x09。這是第一個欄位,長度),後面的欄位數據以此類推。一個欄位一個欄位處理成伺服器要求的格式。
然後把位元組流發送給服務端。
7、請問JAVA中創建一個TCP伺服器端程序的驟是什麼呢?
1.建立一個伺服器socket並開始監聽.
2.使用accept()方法取得新的連接.
3.建立輸入和輸出流.
4.在已專有的協議上產生會屬話.
5.關閉客戶端流和socket.
6.回到第二步或者到第七步.
7.關閉伺服器socket.
8、想用JAVA做一個伺服器,請問怎麼利用TCP和線程,實現多個客戶端同時在線,能與伺服器進行交互?
伺服器監聽埠 做個無限循環 接到一個連接就創建一個通道線程,並將通道線程存儲到一個list集合中
import java.io.BufferedReader;客服端代碼 可以用在區域網中用多台來連接測試
9、Java TCP如何實現一個伺服器向多個客戶機發送信息?
你伺服器accept方法後是不是會得到一個Socket
為這個Socket(是通過這個Socket和客戶端的Socket進行溝通)分配一個服務
我是這么用的ServerThread tt=new ServerThread(socket);
class ServerThread
{
private Socket so;
public ServerThread(Socket s)
{
this.so=s;
}
public void send()
{
}
public void receive()
{
Thread re=new Thread()
{
public void run()
{
}
}
}
}
相當於你用手機撥打人工服務,會給你分配一個客服
為這個Socket分配後,寫一個發送方法,和一個接收方法(線程)
然後把ServerThread tt=new ServerThread(socket);中的tt保存到集合中去,要單獨給某個發送
就從集合中取出來.send();這個方法應該帶個參數,把消息對象傳過去就是
10、java 的 tcp 建立客戶端和伺服器的連接問題
0.0.0.0表示監聽所有IP,在有公網IP的情況下,雲伺服器上一般這么填寫