用tornado做了个socket server。无奈联调的人员对接不上。

于是撸出了以下demo

import java.io.*;
import java.net.*; public class SocketTest{
SocketTest(){}
void test()
{
try{
Socket requestSocket = new Socket("xxx.xxx.xxx.xxx", 60006);
OutputStream out = requestSocket.getOutputStream();
InputStream in = requestSocket.getInputStream(); byte[] bb = new byte[16] ;
for(int i =0;i<13;i++)
{
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();

java socket client的更多相关文章

  1. JAVA Socket(多个客户同时连接,信息共享) client (java/ruby)

    第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字" ...

  2. Java Socket网络编程Client端详解

    此类实现客户端套接字(也可以就叫“套接字”).套接字是两台机器之间的通信端点. Socket client = new Socket(ip,port);//创建一个流套接字并将其连接到指定 IP 地址 ...

  3. Java设置Client Socket链接Server超时时间

    Java设置Client Socket链接Server超时时间 学习了:http://blog.csdn.net/tterminator/article/details/52494141 http:/ ...

  4. JAVA通信系列一:Java Socket技术总结

    本文是学习java Socket整理的资料,供参考. 1       Socket通信原理 1.1     ISO七层模型 1.2     TCP/IP五层模型 应用层相当于OSI中的会话层,表示层, ...

  5. java socket编程(li)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以 ...

  6. Java Socket长连接示例代码

    SocketListenerPusher.java代码如下: import java.io.IOException; import java.net.InetSocketAddress; import ...

  7. java socket编程(网络编程)

    一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  8. JAVA Socket 编程学习笔记(一)

    1. Socket 通信简介及模型 Java Socket 可实现客户端--服务器间的双向实时通信.java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的cli ...

  9. JAVA Socket超时浅析

    JAVA Socket超时浅析 套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字&q ...

随机推荐

  1. The length of the string value exceeds the length configured in the mapping/parameter.

    在NHibernate 3.3 中存储的字符串太长,会抛异常:The length of the string value exceeds the length configured in the m ...

  2. Xcode常用技巧(2)-使Xcode在创建类时自动添加前缀

    在Xcode5之前的版本中,Xcode在新建项目时,会要求为一个类指定一个前缀,这样方便我们区分相同名字的类.而从Xcode6开始,由于Swift增加了命名空间的关系,Xcode在新建项目时,不会再要 ...

  3. Hadoop生态系统

    Hadoop 生态圈

  4. codeforces #270 ABCD

    Codeforces Round #270 A - Design Tutorial: Learn from Math 题意:给出n,求出两个合数x和y使x+y=n. 题解:暴力筛合数,然后暴力找 // ...

  5. CF459B Pashmak and Flowers (水

    Pashmak and Flowers Codeforces Round #261 (Div. 2) B. Pashmak and Flowers time limit per test 1 seco ...

  6. getStyle(),修改样式属性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)

    这篇长文历时近两天终于完成了,前两天帮网站翻译一篇文章“为什么GNU grep如此之快?”,里面提及到grep速度快的一个重要原因是使用了Boyer-Moore算法作为字符串搜索算法,兴趣之下就想了解 ...

  8. Java五道输出易错题解析(避免小错误)

    收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了. 1. 看不见的空格? 下面的输出会正常吗? package basic; public class Integ ...

  9. autopep8

    修正python pep8的警告挺无趣的, 用了 autopep8 感觉比较爽. 记录如下. ----------------pep8检查----------------平时我用pydev做pep8检 ...

  10. Android手机同步电脑端google chrome书签

    我先声明:文中FQ 都是博客园自动将中文(fan qiang)转换为FQ的,并不是我本来写的就是FQ~~ 手机和电脑都必须要能登录google(Xee:几乎所有做开发的人都每天的生活都离不开谷歌了,可 ...