谁能给一个 Qt 跟 java 用socket通讯的例子,要求java 做服务端,qt 做客户端,要求双方都能实时显示对方发过
发布网友
发布时间:2022-05-16 21:50
我来回答
共3个回答
热心网友
时间:2023-09-12 13:06
提供一个聊天功能的给你
import java.net.*;
import java.io.*;
class My1 extends Thread
{
private Socket skt;
public My1(Socket skt)
{
this.skt = skt;
}
public void run()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));
for(;;)
{
if(br.readLine()==null) {break;}
System.out.println(br.readLine()); // 阻塞
}
}
catch(Exception e)
{
System.out.println("对方断线!");
}
}
}
class My2 extends Thread
{
private Socket skt;
public My2(Socket skt)
{
this.skt = skt;
}
public void run()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(skt.getOutputStream());
for(;;)
{
pw.println("姓名====>:"+br.readLine()); // 阻塞
pw.flush();
}
}
catch(Exception e)
{
System.out.println("对方断线!");
}
}
}
public class Good
{
public static void main(String[] args) throws Exception
{
//连接的目的是:获得Socket对象
Socket skt;
System.out.print("请输入<port> 或者:<ip>,<port> ");
// 先选择角色
String[] ss = new BufferedReader(new InputStreamReader(System.in)).readLine().split(",");
if(ss.length==1)
skt = new ServerSocket(Integer.parseInt(ss[0])).accept();
else
skt = new Socket(ss[0], Integer.parseInt(ss[1]));
System.out.println("连接到:" + skt.getInetAddress().getHostAddress());
// 连接建立,角色消失
new My1(skt).start(); //读网络
new My2(skt).start(); //读键盘
}
}
热心网友
时间:2023-09-12 13:06
QT直接访问java的socket吗?一般我在linux下使用QT做UI,使用ACE来实现socket通信,你可以试试ACE,很好用,这段时间就在64位Ubuntu下使用ACE和java通信。
热心网友
时间:2023-09-12 13:06
有JAVA 做个web服务器,发布几个webservers ,在QT客户端里面通过webservers 调用就可以了啊。
是基于SOAP协议的。效率么socket 效率高,一般还是可以用的。