接到一个项目需要java(swt/swing)与。net(其中的winForm)进行交互。进行互动连动,在王上找到一些文章但是没有一个合适的。可以通过读取文件,可以使用socket还有其它方式但是没有想到。这里选择了socket通信。
首先一
定义变量:
#region//定义变量
IPAddress HostIP = IPAddress.Parse("127.0.0.1");
IPEndPoint point;
Socket socket;
bool flag = true;
Socket acceptedSocket;
#endregion
#region
通过winForm建立一个socket(模式c#中部分serversocket 和client socket)。
public void startServer()
{
HostIP = IPAddress.Parse("127.0.0.1");
try
{
point = new IPEndPoint(HostIP, Int32.Parse("8866"));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(point);
socket.Listen(50);
acceptedSocket = socket.Accept();
Thread thread = new Thread(new ThreadStart(Proccess));
thread.Start();
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
其次就是 定义里面的 Process函数
private void Proccess()
{
if (acceptedSocket.Connected)
{
while (flag)
{
byte[] receiveByte = new byte[1024];
acceptedSocket.Receive(receiveByte, receiveByte.Length, 0);
string strInfo = Encoding.UTF8.GetString(receiveByte);
}
}
}
这样就启动了服务端的进程(其时process就是一个接收socket发来的信心的线程)。
然后是发送信息函数:
private void SendToChart(string str){
Byte[] sendByte = new Byte[1024];
sendByte = Encoding.UTF8.GetBytes(str.ToCharArray());
acceptedSocket.Send(sendByte, sendByte.Length, 0);
}
用UTF-8格式读取string字符串为byte数组。然后发送。
现在是java端(也就是这里的client端)
public class SocketToC {
private Socket so;
private DataOutputStream dos;
private DataInputStream dis;
private String message;
private byte[] b=new byte[1024];
public SocketToC(){
try{
so=new Socket("127.0.0.1",11000);
}catch(Exception e){
e.printStackTrace();
}
}
public Socket getSo() {
return so;
}
public void setSo(Socket so) {
this.so = so;
}
public boolean sendMsg(String flag){
try {
this.message=flag ;
dos=new DataOutputStream(so.getOutputStream());
dos.write(message.getBytes("UTF-8"));
} catch (IOException e) {
}
return true;
}
public String getMsg()
{
try {
dis =new DataInputStream(so.getInputStream());
dis.read(b,0, b.length);
String stri=new String(b,"UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
return message;
}
}
ok就是这么多了等这里需要注意的是 发送和接收的时候的格式要统一
发送的时候需要:dos.write(message.getBytes("UTF-8"));发送UTF-8格式的二进制数据流。
接收字符串:然后再new一次 注意相应的格式这里使用UTF-8格式:
dis.read(b,0, b.length);
String stri=new String(b,"UTF-8");
分享到:
相关推荐
由于需求原因,socket通讯采用 ,net 作为服务器端不断监听java做为客户端发送来的信息。.net 服务器端采用线程方式接收多个客户端连接。已经测试通过。
发那科机器人与上位机 视觉SOCKET通讯,收发数据,套接字通讯,读写寄存器变量,IO信号,系统变量。
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/... 此源码为基于HP_Socket框架的socket通讯源码。方便二次开发。省去研究框架的时间
Android应用源码安卓与PC的Socket通信项目C#版+Java版
PC端一般使用c++或c# socket收发信息,网页端只能使用websocket,手机端是java socket。需要将PC端、手机端和网页端,多端打通同时实现即时通讯,就是需要websocket和socket相互通信。
C# Socket通信源码,服务端和客户端互发消息,可发文件,震动闪屏,亲测可用
Android的轻量级Socket通讯框架OkSocket使用demo。要实现安卓Socket客户端与C#服务端Socket通信,使用安卓类库OkSocket完美实现。使用了Socket长连接,断线重连,持续心跳连接,发送握手通讯等
SanNiuSignal是一个基于异步socket的完全免费DLL;它里面封装了Client,Server以及UDP;有了这个DLL;用户不用去关心心跳;粘包 ;组包;发送文件等繁琐的事情;大家只要简单的几步就能实现强大的通信系统;能帮助到...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
本文通过C#、欧姆龙PLC、HostLink通讯协议 TCP通讯 ● 串口通讯等要素,并通过C#相关技术如数据类型 抽象 继承 事件event 函数 修饰符(public private internal)泛型 Action委托 IPAddress 多态函数 socket编程...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
Android应用源码安卓源码包wifi蓝牙串口&Socket通讯窗口抖动Widget小组件等20个合集: android Widget小组件开发.zip Android 开启指定名称和密码的 Wifi热点 demo.zip Android中禁止某软件的安装.zip Android小部件...
本例子读写三菱PLC数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作...3)附件C#代码全开源,所有代码公开,不使用第三方组件。
网文也有一些,本文通过C#编写的winform程序与地磅进行对接,实时获取地磅称重数据。串口通讯,其根本还是一种通讯协议,所以根据不同的设备通讯协议也不尽相同,不过规律虽不同,但原理都是一致的。
.net开发的服务端,与网页WebSocket之间的数据通讯,实现类似网页上在线聊天室的 功能
WebSocket 服务端与客户端 C# 源码,支持微信小程序 WS 协议通信。
支持中文加密解密,我在开发中客户端有java、delphi、QT,服务器端有C#、php、golang,它们之间要socket通讯,就把同一种加密方法用多种语言编写出来,可点我继续下载别的语言版本。
支持中文加密解密,我在开发中客户端有java、delphi、QT,服务器端有C#、php、golang,它们之间要socket通讯,就把同一种加密方法用多种语言编写出来,可点我继续下载别的语言版本。
欧姆龙TCP/UDP网络通讯例子,通讯的每个节点都有详细说明,还有欧姆龙PLC程序例子,以及中文版通讯功能块。