linux下java程序和windows下的c#程序socket通信问题,求教
我写个一个c#的socket通信的监控客户端屏幕的程序。
很简单,就是socket连接,然后客户端传输自己截屏图片给服务器端。
现在需求是想在windows下运行c#服务器端程序来监控Linux的计算机。所以我就写了个java版的客户端。代码都类似的。
测试结果:
1、打包后的jar文件在windows下java -jar xxx.jar,服务器端软件是可以获取到客户端屏幕。证明java程序是正确的
2、在ubuntu下测试,发现jar程序只发送第一张截图中时,
然后windows下的服务器端程序程序自动关闭了。
我刚开始估计是服务器端软件的接收图片的缓存区设置小了。改大后还是没用,一样结果。
后来我发现window下第一次运行有通信的程序,会跳出一个窗口,是否允许局域网通信。
我想问的是linux下是否会是阻止jar向服务器端发送图片?求教
很简单,就是socket连接,然后客户端传输自己截屏图片给服务器端。
现在需求是想在windows下运行c#服务器端程序来监控Linux的计算机。所以我就写了个java版的客户端。代码都类似的。
public void run() {
//截图大小
Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit()
.getScreenSize());//全屏区域
do {
try {
Robot robot = new Robot();
if(reconnTimes>400)break;
socket = new Socket(ip, port);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//连接上
OutputStream outputStream = socket.getOutputStream();
do {
//开始截图
image = robot.createScreenCapture(rect);
//image放置的内存流
bos.reset();
ImageIO.write(image, "gif", bos);
//System.out.println("send to...");
outputStream.write(bos.toByteArray());
//System.out.println("send over...");
outputStream.flush();
bos.close();
image = null;
Thread.sleep(interval);
//System.out.println("all over..");
} while (true);
} catch (Exception e) {
// TODO Auto-generated catch block
//System.out.println("error:" + e.getMessage());
reconnTimes++;
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} while (true);
}测试结果:
1、打包后的jar文件在windows下java -jar xxx.jar,服务器端软件是可以获取到客户端屏幕。证明java程序是正确的
2、在ubuntu下测试,发现jar程序只发送第一张截图中时,
然后windows下的服务器端程序程序自动关闭了。
我刚开始估计是服务器端软件的接收图片的缓存区设置小了。改大后还是没用,一样结果。
后来我发现window下第一次运行有通信的程序,会跳出一个窗口,是否允许局域网通信。
我想问的是linux下是否会是阻止jar向服务器端发送图片?求教
...全文
相关推荐
HP-Socket网络通信框架开发指南5.0版
HP-Socket网络通信框架是一套通用的高性能通信框架,专为处理TCP、UDP和HTTP通信设计,适用于Windows和Linux平台。
基于Socket网络通信协议的应用研究
Socket 开发工具的讨论 - C#中的Socket编程:C#提供了System.Net.Sockets命名空间,包含Socket类,可以方便地创建和管理Socket对象,进行TCP或UDP通信。
基于Socket的网络通信设计
**图形界面集成** - 网络通信程序往往需要与用户交互,因此需要集成图形用户界面(GUI)。例如,可以使用Java的Swing或JavaFX,或者C#的Windows Forms或WPF。
java语言通过Socket实现文件传输
在Unix/Linux/Windows等操作系统环境下,无论是客户端(Client)还是服务器端(Server),都可以通过Java的Socket接口来实现文件的发送与接收。
实验三Socket通信实验报告.doc
实验中,学生可以选择C/C++/C#/Java等编程语言,配合Windows上的MS Visual系列或Linux上的vi和GCC等开发环境进行编程。


