erlang和java的socket通讯----最简单,初次实现。
直接上源码,留做纪念。
有点简单,大家不要笑,初次实现。
功能描述:java发送数据给erlang,erlang将收到的数据重复两次再发送给java。
erlang源码:模块tcp_listen
-module(tcp_listen). -export([start/0,close/1]).
-define(PORT,5002). start() ->
AA= << "我是汉字">>,
io:format("hello erlang ~w~n",[[AA,byte_size(AA)]]),
case gen_tcp:listen( ?PORT,[binary,{active,true},{packet,0}])
of {ok,LSocket}->
io:format("listen port success ~w~n",[LSocket]), spawn(fun() -> loop(LSocket) end) ,
{ok,LSocket}
;
{error,Reason}->
io:format("listen port error Reason: ~w~n",[Reason]),
{error,{cannot_listen,Reason}}
end . %% server socket begin listen
loop(LSocket)->
io:format("begin listen lsocket: ~n",[]),
case gen_tcp:accept(LSocket)
of
{ok,Socket}->
io:format("receive client connect: ~w~n",[Socket]),
begin_receive(Socket),
spawn(fun()-> loop(LSocket) end)
;
{error,Reason}->
io:format("accept client error: ~w~n",[Reason])
end. begin_receive(Socket)->
io:format("begin listen socket client data: ~n",[]),
receive
{tcp,Socket,Data}->
NewData= <<Data/binary,Data/binary>>,
io:format("receive client data1: ~w~n",[NewData]), gen_tcp:send(Socket,NewData) ,
begin_receive(Socket); Data_2->
io:format("receive client data2: ~w~n",[Data_2])
end. close(LSocket)->
gen_tcp:close(LSocket).
java源码:类Test
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
public class Test {
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println("ni hao");
String AA="我是汉字";
byte[] byte_write=null;
try
{
byte_write=AA.getBytes("UTF8");
}
catch (UnsupportedEncodingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(byte_write.length);
int port=5002;
String ip="localhost";
Socket socket=null;
try
{
socket=new Socket(ip,port);
System.out.println("socket connect success");
}
catch (UnknownHostException e)
{
// TODO Auto-generated catch block
System.out.println("error:"+e.getLocalizedMessage());
}
catch (IOException e)
{
// TODO Auto-generated catch block
System.out.println("error:"+e.getLocalizedMessage());
}
OutputStream out_stream = null;
InputStream in_stream = null;
try {
out_stream = socket.getOutputStream();
in_stream = socket.getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] byte_read=new byte[1024];
int data_in_length=0;
String read_in_str=null;
try
{
out_stream.write(byte_write);
System.out.println("socket write success");
data_in_length=in_stream.read(byte_read);
read_in_str=new String(byte_read,0,data_in_length, "UTF8");
System.out.println("data_in_length:"+data_in_length+",read_in_str:"+read_in_str);
}
catch (IOException e)
{
// TODO Auto-generated catch block
System.out.println("socket connect fail");
}
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如有见解或者疑问,请留言,有留必回。可能回复的会不太及时,请谅解。
erlang和java的socket通讯----最简单,初次实现。的更多相关文章
- Socket通讯的简单用法
1.客户端 package Thread; import java.io.BufferedReader; import java.io.IOException; import java.io.Inpu ...
- Java C++ Socket通讯
import java.net.*; import javax.swing.plaf.SliderUI; /** * 与c语言通信(java做client,c/c++做server,传送一个结构) * ...
- Java Nio Socket通讯
Server端: #############服务器端连接请求处理############### public class MultiplexerServer implements Runnable { ...
- JAVA之Socket通讯
Server.java: Client.java Server console:(先启动服务器,再启动客户端) 服务器读取了客户端发来的hello server: Client console:客户 ...
- java socket通讯(一) 入门示例
一.入门 要想学习socket通讯,首先得知道tcp/ip和udp连接,具体可参考浅谈TCP/IP 和 UDP的区别 二.示例 首先新建了一个java工程,包括两个部分,客户端SocketClient ...
- Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯
Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...
- Socket通讯-Netty框架实现Java通讯
Netty简介 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty ...
- Socket网络通讯开发总结之:Java 与 C进行Socket通讯(转)
先交待一下业务应用背景:服务端:移动交费系统:基于C语言的Unix系统客户端:增值服务系统:基于Java的软件系统通迅协议:采用TCP/IP协议,使用TCP以异步方式接入数据传输:基于Socket流的 ...
- java socket通讯(二)处理多个客户端连接
通过java socket通讯(一) 入门示例,就可以实现服务端和客户端的socket通讯,但是上一个例子只能实现一个服务端和一个客户端之间的通讯,如果有多个客户端连接服务端,则需要通过多线程技术来实 ...
随机推荐
- 生产环境JAVA进程高CPU占用故障排查
问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析:1,程序属于CPU密集型,和开发沟通过, ...
- [na]小区网络-pppoe拨号认证原理及部署(panabit来管理)
以前搞网络时候,对小区宽带adsl上网(后ie中的pppoe拨号config)+对一坨人限速的系统(panabit)比较感兴趣,挺神秘. 以前写的,有些纰漏,抽时间我会陆陆续续补充下. PPPOE认证 ...
- ueditor图片上传配置
ueditor图片上传配置文件为ueditor/php/config.json /* 上传图片配置项 */ "imageActionName": "uploadimage ...
- Javac编译器
One Compiler http://www.oracle.com/technetwork/java/jvmls2016-wimmer-3125555.pdf Hacking the OpenJDK ...
- merge源表数据移植到目标表新表数据中
merge into dbo.ak_SloteCardTimes a using(select RecordID,CardNO,SloteCardTime from dbo.Tb_CardDate b ...
- Ubuntu 12.04安装和设置SSH服务
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现.SSH协议族可以用来进行远程控制, 或在计算机之间传送文件.而实现此功能的传统方式,如telnet(终端仿真协议). rc ...
- C++面向对象程序设计的一些知识点(1)
1.函数重载而不出错是有条件的: (1).这些函数位于同一域内,如同一类中.同一文件中. (2).这些同名函数具有不同的参数特征标(特征标是指形參的个数.类型.排列顺序等). 2.引用特性(与指针对比 ...
- IR的评价指标之MRR
MRR(Mean Reciprocal Rank): 是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0 ...
- 基于css3炫酷页面加载动画特效代码
基于CSS3实现35个动画SVG图标.这是一款基于jQuery+CSS3实现的SVG图标动画代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&qu ...
- 一款纯css3实现的漂亮的404页面
之前为大家分享了那些创意有趣的404页面, html5和css3打造一款创意404页面, HTML5可爱的404页面动画很逗的机器人.今天再给大家分享一款纯css3实现的漂亮的404页面.效果图如下: ...