导航:首页 > 编程语言 > java和csocket通信

java和csocket通信

发布时间:2022-12-08 22:35:51

java与C#进行Socket通信

public static void Send(String content) throws IOException {
Socket s = new Socket(ip,port);
DataOutputStream out = new DataOutputStream(s.getOutputStream());
String temp = content;
int length = temp.getBytes().length;
byte[] b = temp.getBytes();
out.writeInt(length);
out.write(b);
out.flush();
}

可以用上面的方法来发送到指定的端口,然后C#用只要监听端口就可以了,先接收一个int的报文长度,然后new出一个byte[]然后再接收一个byte[],然后通过这个byte[]转换成String就可以了

⑵ C和java的socket通信

这个没有try catch的么。。。

⑶ c语言和java 使用socket通信的时候 数据大小端转换的问题

我也搞网络编程搞好久了,大小端这个问题倒是没有遇到过啊,我同事做Java,我做IOS都一样的,都是小端的。
建议你用抓包软件抓下包看看,还有就是注意发送时数据对齐问题,不同的系统可能一样的类型长度就不一样,比如在mac系统中long型有8字节,但是在IOS、VC中就只有四个字节,一般使用socket发送数据时都是打包发送的(头部一般都是固定的结构体),这个问题必须要注意

⑷ Java 和其它语言之间怎么进行Socket通信用JAVA编写server,C语言编写Client,可以实现吗怎么实现

本答案提交时间:2011-6-12 17:17

Java 和其它语言之间进行Socket通信使用Socket和ServerSocket类。
用JAVA编写server,C语言编写Client,当然可以实现通信(示例在最后)。

1、Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
重要的Socket API:
java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,使用频繁的三个方法:
. Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
. getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。
. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。
2.如何开发一个Server-Client模型的程序
开发原理:
服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。
客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

下面这个程序用JAVA建立了一个服务器,它一直监听10000端口,等待用户连接,而用户端则可以使用C写的程序来连接该服务器。
本程序在建立连接后给客户端返回一段信息,然后结束会话。这个程序一次只能接受一个客户连接。

import java.net.*;
import java.io.*;

public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;

public Server()
{
try
{
ss = new ServerSocket(10000);
while (true)
{
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);

String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
ss.close();
}
catch (IOException e)
{}
}

public static void main(String[] args)
{
new Server();
}
}

⑸ Java如何与C进行通信

两个不同进程之间的数据交互:
1、可以选择socket通信
2、可以选择文件,不过要注意好读写
3、消息传递,在windows下抛出一个消息//具体怎么做我没试过,只知道有这方法
4、数据库//这个比较容易实现

上面说的两个不同进程,当然就是可以选择用不同语言写出来的程序了

linux用java socket与c的socket通信乱码问题

应该就是字符集问题。
首先要确定Linux返回的数据中,采用了那种编码方式,如:GBK。
对应的,在Java一端,将字符串信息转换成byte数组并写入Socket,读出的数据也转换成字符串,
如:
String s = "中文" ;
sockoutputstream.write (s.getBytes ("GBK")) ;

读出来时候,
byte [] buf = sockinputStream.read ()

String s = new String (buf, "GBK") ;

这样就可以了。

阅读全文

与java和csocket通信相关的资料

热点内容
育碧app怎么样 浏览:735
java与类名相同 浏览:380
李居明八字pdf 浏览:617
电子技术基础康华光pdf 浏览:340
如何阻止迅雷下app 浏览:360
al150压缩机 浏览:600
手机文件图片怎么解压 浏览:655
分布式系统设计pdf 浏览:181
中轴线趋势指标源码 浏览:721
labview源码代码 浏览:61
15匹谷轮压缩机图片 浏览:818
bsp分割算法 浏览:22
高手选股公式源码 浏览:682
脆皮软心球解压视频十分钟 浏览:404
如何关闭苹果app同步充值 浏览:766
视频压缩发送微信 浏览:856
程序员段子大全图片 浏览:760
javaudp心跳 浏览:429
阿里卖家app如何分配询盘 浏览:828
如何拔打中国移动人工服务器 浏览:505