导航:首页 > 编程语言 > java客户端调用服务端

java客户端调用服务端

发布时间:2025-01-13 08:30:26

java中用socket实现客户端与服务端双向连接问题

//服务端程序
importjava.io.*;
importjava.net.*;

publicclassTCPServer{
publicstaticvoidmain(String[]args)throwsIOException{
().init();
}
@SuppressWarnings("static-access")
privatevoidinit()throwsIOException{
@SuppressWarnings("resource")
ServerSocketserver=newServerSocket(1000);
Socketclient=null;
while(true){
try{
client=server.accept();
BufferedInputStreambis=newBufferedInputStream(client.getInputStream());
byte[]b=newbyte[1024];
intlen=0;
Stringmessage="";
while((len=bis.read(b))!=-1){
message=newString(b,0,len);
System.out.print("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:"+message);
if("byte".equals(message.trim()))
client.close();
PrintWriterpw=newPrintWriter(client.getOutputStream(),true);
pw.println(message);
}
}catch(Exceptione){
System.err.println("客户端:"+client.getInetAddress().getLocalHost().getHostAddress()+"已断开连接!");
}
}
}
}
//客户端程序:
importjava.io.*;
importjava.net.Socket;

{
publicstaticvoidmain(String[]args)throwsIOException{
newTCPClient().init();
}
privatevoidinit()throwsIOException{
@SuppressWarnings("resource")
finalSocketclient=newSocket("127.0.0.1",1000);
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
Stringsend="";
while(true){
send=in.readLine();
PrintWriterout=newPrintWriter(client.getOutputStream(),true);
if(!"byte".equals(send.trim()))
out.println(send);
else{
out.println(send);
System.exit(0);
}
newThread(newTCPClient(){
@SuppressWarnings("static-access")
publicvoidrun(){
try{
BufferedInputStreambis=newBufferedInputStream(client.getInputStream());
byte[]b=newbyte[1024];
intlen=0;
while((len=bis.read(b))!=-1){
System.out.println("服务器:"+client.getInetAddress().getLocalHost().getHostAddress()+"发来消息:"+newString(b,0,len).trim());
}
}catch(IOExceptione){
System.err.println("连接服务器失败!");
}
}
}).start();
}
}
publicvoidrun(){}
}

//服务器测试结果:

客户端:192.168.0.200发来消息:001 byte

客户端:192.168.0.200发来消息:byte

客户端:192.168.0.200 已断开连接!

客户端:192.168.0.200发来消息:adasd

客户端:192.168.0.200 已断开连接!

//客户端测试结果:

---001号客户端--

001byte

服务器:192.168.0.200发来消息:001byte

byte //001礼貌说跟服务器说byte

---002号客户端--

adasd //002客户端直接关闭程序

服务器:192.168.0.200发来消息:adasd

⑵ java缃戠粶缂栫▼搴旇ユ庢牱鍦ㄥ㈡埛绔鍜屾湇鍔″櫒闂村疄鐜伴氫俊锛

浠ュ墠鍐欑殑锛岀収璐翠簡銆傘傘傛湇鍔″櫒绔锛歩mport java.awt.*;x0dx0aimport java.awt.event.WindowAdapter;x0dx0aimport java.awt.event.WindowEvent;x0dx0aimport java.io.*;x0dx0aimport java.net.*;/*6銆 閲囩敤UDP鍗忚锛岀紪鍐欎竴涓狫ava缃戠粶搴旂敤绋嬪簭锛岃ュ簲鐢ㄥ垎鏈嶅姟鍣ㄧ绋嬪簭鍜屽㈡埛绔绋嬪簭涓ら儴鍒嗐俓x0dx0a* 瀹㈡埛绔鎸囧畾涓涓鏈嶅姟鍣ㄤ笂鐨勬枃浠跺悕锛岃╂湇鍔″櫒鍙戝洖璇ユ枃浠剁殑鍐呭癸紝鎴栬呮彁绀烘枃浠朵笉瀛樺湪銆俓x0dx0a* 锛20鍒嗭級锛堟湇鍔$绋嬪簭鍜屽㈡埛绔绋嬪簭鍒嗗埆鍛藉悕涓篠erver.java鍜孋lient.java锛*/x0dx0apublic class N4BT6 extends Framex0dx0a{x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet ;byte[] buf ;x0dx0aFile file ;x0dx0aFileInputStream input;x0dx0aString message = "璇ユ枃浠朵笉瀛樺湪";x0dx0aTextArea text;x0dx0apublic N4BT6(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0ax0dx0abuf = new byte[1024];x0dx0atryx0dx0a{x0dx0asocket = new DatagramSocket(1230);x0dx0apacket = new DatagramPacket(buf, buf.length);x0dx0asocket.receive(packet);x0dx0afile = new File(new String(packet.getData()));x0dx0asocket = new DatagramSocket();x0dx0a} x0dx0acatch (Exception e)x0dx0a{e.printStackTrace();x0dx0a}x0dx0ax0dx0aif(file.exists())x0dx0a{x0dx0atryx0dx0a{x0dx0abuf = new byte[(int)file.length()];x0dx0apacket = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);x0dx0ainput = new FileInputStream(file);x0dx0ainput.read(buf);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (IOException e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0aelsex0dx0a{x0dx0atryx0dx0a{x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1234);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0ax0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6("Server");x0dx0a}x0dx0a}x0dx0a瀹㈡埛绔锛歩mport java.awt.*;x0dx0aimport java.awt.event.*;x0dx0aimport java.net.DatagramPacket;x0dx0aimport java.net.DatagramSocket;x0dx0aimport java.net.InetAddress;public class N4BT6_2 extends Framex0dx0a{x0dx0aTextArea text;x0dx0aString message = "Q.txt";x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet;x0dx0abyte[] buf;x0dx0apublic N4BT6_2(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0atryx0dx0a{x0dx0ax0dx0asocket = new DatagramSocket();x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1230);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0ax0dx0atryx0dx0a{x0dx0abuf = new byte[1024];x0dx0asocket = new DatagramSocket(1234);x0dx0apacket = new DatagramPacket(buf,buf.length);x0dx0asocket.receive(packet);x0dx0atext.append(new String(buf));x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6_2("Client");x0dx0a}x0dx0a}

⑶ 关于Webservice接口的Java客户端调用

String endpoint="http://localhost:8080/xxx/services/userservice?wsdl";
String id = "11111";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("webservice方法名");
String res = (String) call.invoke(new Object[] {id});
看了你的描述觉得你把webservice想得太复杂化了,其实就是一个jar包和几个类。
以上就是最简单的webservice客户端用法,和反射有点像。当然返回值不一定是String,返回的类型和格式要问服务提供方。
我用的是axis的,我不了解websphere什么的,但是webservice就是那么易用的东西。

⑷ Thrift教程(Java客户端和服务器)

Thrift教程(Java客户端和服务器)


在实现Java客户端与服务端通信时,首先需要编写Thrift文件来定义接口和结构。


步骤一:创建一个名为'tutorial.thrift'的文件,用于描述服务的接口和数据类型。


接着,运行Thrift编译器,通过命令生成Java代码。这通常包括客户端和服务端的接口实现。


步骤二:在新创建的Maven项目中操作,将thrift编译后的'gen_java'目录下的Java代码,如接口类和数据类,复制到src/main/java目录下。


然后,开始编写Java客户端代码,这将调用在步骤一中生成的接口来与服务端交互。


在客户端,你将看到如下输出,表示请求和响应的处理过程:


[客户端输出]


与此同时,在服务端,你需要实现相应的服务接口,处理客户端的请求:


[服务端输入]


最后,项目的目录结构应包含Maven的基本结构,以及从Thrift生成的Java代码所在的文件夹。


完整的项目结构如下:


[项目目录结构描述]

阅读全文

与java客户端调用服务端相关的资料

热点内容
怎么改合同网站 浏览:73
网络斗地主记牌器怎么实现的 浏览:377
ps镜像文件制作教程 浏览:45
系统分页文件大小设置多少 浏览:447
win10有线无法上网 浏览:339
wps无法访问指定文件 浏览:96
iphone4震动坏了 浏览:217
安卓随机数软件rand 浏览:356
CNC编程如何掌握公差 浏览:297
linux搭建php环境 浏览:514
星形网络怎么表示有故障 浏览:719
dbf文件c语言处理excel 浏览:138
金蝶kis支持win10吗 浏览:113
常州采集物联网大数据平台有哪些 浏览:950
win10休眠文件改到d盘 浏览:626
如何编程手机app软件 浏览:656
node获取文件名 浏览:367
iphoneios7怎么设置铃声 浏览:52
手机qq激活星钻 浏览:302
html中引入js文件路径 浏览:83

友情链接