接到一个项目需要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");
分享到:
相关推荐
本话题主要探讨了两种常用编程语言——Java和C#之间如何利用Socket进行通信。Socket是网络编程的基本接口,允许应用程序通过网络发送和接收数据。以下是关于"Java和C#之间基于Socket的通信"的详细知识点: 1. **...
Socket通讯是一种基于网络协议(如TCP/IP)进行进程间通信的技术,它允许不同计算机上的应用程序通过网络进行数据交换。在本场景中,我们探讨的是如何使用`.NET`作为服务器端,`Java`作为客户端实现这样的通信。 ...
在本示例中,"flex C# 基于socket 通讯 应用程序源码"描述了一个项目,该项目结合了这两种技术,通过Socket通信实现客户端和服务器端的数据交互。 Socket通信是网络编程的基础,它允许两个网络应用程序之间建立连接...
在这个场景中,我们关注的是安卓客户端(Android)通过Socket与PC端的C#服务器进行通信。Socket是网络编程的基础,它允许两个程序通过网络交换数据。本篇文章将深入探讨如何实现这个过程,包括C#服务器和安卓客户端...
在Android中,同样可以使用Java的Socket类进行网络通信。需要在AndroidManifest.xml文件中添加Internet权限,然后在代码中创建Socket对象,连接到服务器,收发数据。 4. **C#与Android之间的通信**: 本实例中,...
1. Android应用中,同样需要引用java.net命名空间,使用java.net.Socket类建立客户端。 2. 创建Socket对象,指定服务器的IP地址和端口号。 3. 使用connect方法建立到服务器的连接。 4. 获取输入流和输出流对象,通常...
1. **安卓客户端实现**:在安卓应用中,可以使用java.net.Socket类进行Socket通信。由于安卓平台的安全限制,通常需要在运行时获取INTERNET权限。 2. **连接服务器**:客户端通过指定服务器的IP地址和端口号,调用`...
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/... 此源码为基于HP_Socket框架的socket通讯源码。方便二次开发。省去研究框架的时间
这个“windows——socket通讯.zip”文件显然包含了关于如何在Windows平台上使用Socket进行UDP和TCP通信的示例代码。让我们深入探讨一下Windows Socket编程的基础知识,以及UDP和TCP这两种传输协议的特点。 首先,...
通过分析和理解这些源代码,开发者可以掌握如何将C#与网络通信技术结合,创建自己的即时通讯软件。 【标签】"毕业设计 Java PHP C# asp.net"表明这个项目适合用于毕业设计或者作为学习不同编程语言的比较。Java、...
PC端一般使用c++或c# socket收发信息,网页端只能使用websocket,手机端是java socket。需要将PC端、手机端和网页端,多端打通同时实现即时通讯,就是需要websocket和socket相互通信。
C#中的`System.Net.Sockets.Socket`类提供了与Java相似的功能。开发者需要创建Socket对象,然后调用`Connect`方法连接到Android设备上设定的服务器端点。C#中的`NetworkStream`类可以与Socket一起使用,提供读写数据...
本项目聚焦于C#语言如何实现与欧姆龙PLC的以太网通信,特别是通过FINS(Factory Integration Network System)协议,这是一项专为欧姆龙设备设计的通讯协议。 FINS协议允许用户通过TCP/IP或UDP/IP在网络中进行设备...
在编程实现中,Java的`java.net.Socket`和`java.net.ServerSocket`类提供了Socket通讯的支持。Python的`socket`模块也是常用的实现方式。在实际应用中,为了处理并发连接,服务器通常会使用多线程或异步I/O模型,如...
总之,Android Studio与Unity3D的Socket通讯是跨平台应用开发中的关键技术,通过理解TCP/IP协议、Socket编程以及Android和Unity3D的API,开发者可以实现高效、稳定的数据交换,为用户提供丰富的互动体验。
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
除了 Socket 通信之外,还提到了 ActiveMQ,这是一个基于 Java 的消息中间件,但它也支持其他语言包括 C#。ActiveMQ 支持多种消息传递模式,例如点对点 (Point-to-Point) 和发布订阅 (Publish-Subscribe),可以用于...
C# Socket通信源码,服务端和客户端互发消息,可发文件,震动闪屏,亲测可用
标题中的"C#用socket实现局域网办公助理设计"是一个基于C#编程语言,利用Socket通信技术构建的局域网内办公辅助系统。Socket在计算机网络编程中扮演着重要角色,它提供了进程间的网络通信能力,使得不同计算机上的...
对于Java开发,无论是桌面应用还是Android应用,都可以直接使用Java的Socket和ServerSocket类进行Socket通信。 至于HTML5源代码,它提供了WebSocket API,使得Web应用也能实现类似原生应用的双向通信功能,这在移动...