import java.net.*;
import java.io.*;
/**
* 与C语言通信(java做Client,c/c++做Server,传送一个结构)
* @author kingfish
* @version 1.0
*/
public class Employee2 {
private String name;
private int id;
private float salary;
/**
* 将int转为低字节在前,高字节在后的int
*/
private static int toLH(int in) {
int out = 0;
out = (in & 0xff) << 24;
out |= (in & 0xff00) << 8;
out |= (in & 0xff0000) >> 8;
out |= (in & 0xff000000) >> 24;
return out;
}
/**
* 将float转为低字节在前,高字节在后的int
*/
private static int toLH(float f) {
return toLH(Float.floatToRawIntBits(f));
}
/**
* 构造并转换
*/
public Employee2(String name, int id, float salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
/**
* 取得名字,定长byte数组
*/
public byte[] getName() {
byte[] b = new byte[20];
System.arraycopy(name.getBytes(), 0, b, 0, name.getBytes().length);
return b;
}
/**
* 取得编号(低字节在前)
*/
public int getId() {
return toLH(id);
}
/**
* 取得工资(低字节在前)
*/
public int getSalary() {
return toLH(salary);
}
/**
* 发送测试
*/
public static void main(String[] args) {
try {
Employee2 p = new Employee2("kingfish", 123456789, 8888.99f);
Socket sock = new Socket("127.0.0.1", 8888);
DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
dos.write(p.getName());
dos.writeInt(p.getId());
dos.writeInt(p.getSalary());
sock.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
} //end

java与c/c++进行socket通信的一些问题(2)相关推荐

  1. java面试题44关于 Socket 通信编程,以下描述正确的是:( )

    java面试题44关于 Socket 通信编程,以下描述正确的是:( ) A 客户端通过new ServerSocket()创建TCP连接对象 B 客户端通过TCP连接对象调用accept()方法创建 ...

  2. java与C语言之间socket通信(java客户端 C服务端)

    直接贴代码 服务端C代码 server.c #include <stdio.h> #include <sys/types.h> #include <sys/socket. ...

  3. java与c/c++进行socket通信的一些问题

    c/c++和java通信的问题比较多,特别是c特有的数据结构(如struct). 特地根据网友的一个问题举个例子,希望对初学者有所帮助. 这类问题通常是为了利用原有Server或者Server不能做修 ...

  4. java事件 socket_java中有关socket通信的学习笔记

    最近做的项目中使用到了一些基于java的socket长连接的一些功能,用来穿透有关行业的网闸.用到了也就学习了一下,下面是对学习内容的一个笔记,记录一下也希望有兴趣的同学可以参考一下,加深对javas ...

  5. java客户端服务器代码_Java Socket通信 客户端服务器端基本代码

    [服务器端] import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import ...

  6. java与c 通信_Java与C之间的socket通信

    最近正在开发一个基于指纹的音乐检索应用,算法部分已经完成,所以尝试做一个Android App.Android与服务器通信通常采用HTTP通信方式和Socket通信方式.由于对web服务器编程了解较少 ...

  7. java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接 ...

  8. Java Socket实战之六 使用NIO包实现Socket通信

    2019独角兽企业重金招聘Python工程师标准>>> 本文地址:http://blog.csdn.net/kongxx/article/details/7288896 Java S ...

  9. flex java socket通信

    引用:http://developer.51cto.com/art/201003/189791.htm Java socket通信如何进行相关问题的解答呢?还是需要我们不断的学习,在学习的过程中会遇到 ...

最新文章

  1. iOS 进阶—— iOS内存管理
  2. 26期20180716 iptables规则备份恢复 firewalld zone
  3. 我们是如何解决复杂系统扩展性问题的
  4. OpenGL ---渲染流水线之世界矩阵,相机变换矩阵,透视投影变换矩阵
  5. android分享软件功能的实现
  6. B树与B+树 两者的区别
  7. 字符串-文本对齐方法演练
  8. 如何创建newsstand应用程序
  9. 升级鸿蒙系统照片,华为鸿蒙系统照片出炉,神似EMUI,海内外花粉沸腾了
  10. groovy怎样从sql语句中截取表名_Mysql和SQL
  11. 2011年三八妇女节搜索引擎LOGO设计欣赏
  12. brython的问题
  13. qt电容触摸屏实现长按_电阻屏和电容屏有什么区别?究竟谁更胜一筹?
  14. java winform程序_重拾JAVA之WinForm实战之(四)
  15. Google Chrome Frame 自定义渲染方式,调用ActiveX
  16. java网络编程 - TCP/IP四层模型
  17. PMP工具之三点估算
  18. 棋盘中正方形,长方形个数
  19. oeasy教您玩转vim - 005 - # 程序本质
  20. 第三讲:如何构建双活数据中心方案

热门文章

  1. mac下RTSP服务器搭建(ZLMediaKit)
  2. Go语言中*和的区别
  3. Java多线程之线程池详解
  4. FFMPEG结构体分析之AVFrame
  5. nginx搭建流媒体服务器
  6. Python Virtualenv Anaconda
  7. 找到比某个数大的最小的2的次幂
  8. redis 慢查询日志
  9. OneData建设探索之路:SaaS收银运营数仓建设
  10. HBase性能优化方法总结(一):表的设计