用tornado做了個socket server。無奈聯調的人員對接不上。
于是擼出了以下demo
java websocket框架,import java.io.*;
import java.net.*;
public class SocketTest{
java udp socket、SocketTest(){}
void test()
{
java socket發送數據,try{
Socket requestSocket = new Socket("xxx.xxx.xxx.xxx", 60006);
OutputStream out = requestSocket.getOutputStream();
java socket.setkeepalive、InputStream in = requestSocket.getInputStream();
byte[] bb = new byte[16] ;
for(int i =0;i<13;i++)
javasocket編程步驟、{
bb[i+3]=(byte)((int)'a'+i);
}
bb[0]=(byte)0x00;
bb[1]=(byte)0x0e;
bb[2]=(byte)0xaa;
bb[15]=(byte)0xfe;
System.out.println("client>"+new String(bb));
out.write(bb);
out.flush();
byte[] buffer = new byte[1024];
in.read(buffer);
String responseStr = new String(buffer);
System.out.println("server>"+responseStr);
out.close();
in.close();
requestSocket.close();
}
catch(IOException ioException){
ioException.printStackTrace();
}
// catch(ClassNotFoundException classNot){
// System.err.println("data received in unknown format");
// }
}
public static void main(String args[])
{
SocketTest client = new SocketTest();
client.test();
}
}
既要:
1. linux 下編譯執行的細節:
javac SocketTest.java
java SocketTest? (不要 java SocketTest.class, 不然一大堆誤導加麻煩)
2. 字節操作,在java里面用byte數組,不要擔心(128~255)溢出。直接賦值即可。
byte b = (byte)254;
3. 從socket得到原始的輸入輸出流,不要再用其他包裹,否則會出現詭異的事情。
OutputStream out = requestSocket.getOutputStream();
InputStream in = requestSocket.getInputStream();
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态