私はこのTCPサーバーを稼動しています。UDPサーバーは大きなパケットを受け入れることができましたが、ISPはパブリックIPと静的サービスを持っていても私のUDPパケットをブロックします。しかし、今はTCPに変更することに決めましたが、私は大きなスタックを使用してUDPをTCPに置き換えました。TCP Javaでリアルタイムの大きなパケットを送受信する方法は?
ここでは実行中のサーバがありますが、大きなパケットをすぐに受信することはできません。どのようにして無制限または最大サイズなどに増やすことができますか?
1)これには何らかの方法がありますか?
public void run()
{
while(true)
{
byte[] buf=new byte[5024]; <<< not helping!!
int bytes_read = 0;
try {
bytes_read = sockInput.read(buf, 0, buf.length);
String data = null;
data = new String(buf, 0, bytes_read);
System.out.println("[TCP]: incomeing data: " + bytes_read + " bytes, data=" +data);
}
}
2)これには何らかの方法がありますか?
public TCPHandler(Socket sock) throws IOException
{
sock.setReceiveBufferSize(10*1024 +1024); //<<<<< not helping !!!
sock.setSendBufferSize(10*1024+1024);
this.sock = sock;
sockInput = sock.getInputStream();
sockOutput = sock.getOutputStream();
this.myThread = new Thread(this);
}
私はUDPからTCPに切り替えることができないように、大きな処理ができません。何か案は!!
に続く、あなたはいくつかの特定のエラーを取得していますか? – cdeszaq
あなたがメッセージ指向のプロトコルを望むなら、それはあなたのためにメッセージ境界を扱うでしょう、多分あなたはSCTPを探す必要があります... – lvella