用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. js与php转换时间戳

    php时间:1368524732 js代码: function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleStri ...

  2. Xcode pch文件问题

    创建后需修改 Prefix Header Debug.Release 为:项目名称/PrefixHeader.pch/ #import <UIKit/UIKit.h>#import < ...

  3. iwebshop二次开发

    1.iwebshop中写hello world ① 动作action方式 controllers目录下,然后创建text.php. <?php class Test extends IContr ...

  4. 1.Redis安装(转)

    Redis的官网为: http://redis.io/. 1.Redis安装 redis的安装非常的简单,而且Redis并不依赖其他环境和标准库,很容易上手,这可能也是它流行的一个原因.这里为了测试方 ...

  5. linux下定时执行任务方法【转】

     之前就转过一篇关于定时任务的文章,前俩天用,还的翻出来看!!!再转一次,备用,,需要的时候不用麻烦找! ----------------------------------------------- ...

  6. 关于yaf 框架的win安装

    http://www.sunqinglin.cn/index.php/archives/329.html PHP windows下yaf框架的安装和配置 2014年10月28日 ⁄ PHP, 编程开发 ...

  7. Linux服务器管理: 系统的进程管理终止进程kill命令

    在Linux中如何用kill终止进程: kill -l [root@localhost~]#kill -l   可以看到kill中有很多的 常用:  -1 是重启一个进程    -9 是强制杀死进程 ...

  8. SWFUpload 2.5.0版 官方说明文档 中文翻译版

    原文地址:http://www.cnblogs.com/youring2/archive/2012/07/13/2590010.html#setFileUploadLimit SWFUpload v2 ...

  9. StarWind的安装配置

    将安装包拷贝到本地后,执行以下exe文件,默认下一步,直到安装完成. 需汉化版本则将language_chinese.xml文件拷贝到以下路径: C:\Program Files\StarWind S ...

  10. SQL Server数据库邮件配置

    一.数据库邮件介绍 数据库邮件是从SQL Server数据库引擎中发送电子邮件的企业解决方案,通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件.邮件中可以包含查询结果,还可以包含来自网络中任何 ...