导航:首页 > 配服务器 > java程序如何与服务器通信

java程序如何与服务器通信

发布时间:2023-02-20 05:58:19

① 编写java程序实现客户端和服务端的通信

没错啊,编译和运行都很正常。
你到底要实现什么功能?

客户端把“请求连接”转换成byte发给服务器,服务器显示打印
服务器把“连接成功”转换成byte发给客户端,客户端显示打印,

语法一点也没错啊。

string.getbyte()返回的是一个byte类型的数组,你直接打印打印的是数组的地址

② java 网络编程: 如何实现客户端与客户端之间的之间通信

服务器告知双方对方的ip地址,并协调由哪一方主动连接。
如 协调结果是: 把c2的地址告诉c1,让c1主动连接c2,让c2打开端口等待连接。

要考虑认证问题,比如c2如何知道连接上来的是c1,而不是其他人,就需要有认证机制。
另外要考虑内网问题。由于从外部连接内网里面的IP地址是相当繁琐复杂的,所以需要特别的机制处理。

③ 在java网络编程中,客户端/服务器怎么实现不同电脑之间的通信

1、首先两台电脑和服务器都在同一个网络中
2、相互之间可以用sokect<--->server
相互进行通信

④ 用java编写Client和Server程序,实现Client和Server的数据通信。

服务端代码:

importjava.io.IOException;
importjava.io.InputStream;
importjava.net.InetAddress;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.net.UnknownHostException;

publicclassServer{

publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{

ServerSocketserver=newServerSocket(2408,5,InetAddress.getByName("localhost"));

while(true){

//等待客户端的连接
SocketclientSocket=server.accept();

//为每个连接的客户端分配一个线程,与客户端通信
newThread(newClientThread(clientSocket)).start();
}
}
}

{

privateSocketclientSocket;

publicClientThread(Socketsocket){
this.clientSocket=socket;
}

@Override
publicvoidrun(){

try{

InputStreaminput=clientSocket.getInputStream();

byte[]buffer=newbyte[1024];

booleanexit=false;

while(!exit){

intlen=input.read(buffer);
Stringmessage=newString(buffer,0,len);

if("bye".equals(message)){
exit=true;
}

System.out.println(clientSocket.getRemoteSocketAddress()+":"+message);
}

clientSocket.close();

}catch(IOExceptione){
e.printStackTrace();
}
}
}

客户端代码:

importjava.io.IOException;
importjava.io.OutputStream;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.UnknownHostException;
importjava.util.Scanner;

publicclassClient{

publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{

Scannerscanner=newScanner(System.in);

Socketsocket=newSocket(InetAddress.getByName("localhost"),2408);

OutputStreamoutput=socket.getOutputStream();

booleanexit=false;

while(!exit){

Stringmessage=scanner.nextLine();

if("bye".equals(message)){
exit=true;
}

byte[]data=message.getBytes();

output.write(data);
output.flush();
}

socket.close();
}
}

⑤ java rmi怎样实现服务器间的通信

首先要选用技术,这很明显做个socket就行,简单通讯,还可以扩展为非局域网的主机。

1,编写socket服务器端 放在主服务器上,利用开机启动的方式启动server
并保持监听某端口
2,编写socket客户端放在 你需要的从属服务器上,同样利用开机启动的方式
运行client,然后程序中利用 经过包装client.getOutputStream()的流,向服务器发送消息,就是那个ip (当字符串发,转换为byte[])

(细节我就不介绍了…… )
3,汇总的实质就是 server 利用
client.getInputStream()的包装流(假如叫in)
存放数据的数组,假如叫 bytep[] buf;
获得数据 in.read(buf,0,buf.length);

然后:
File file = new File("D://log.txt");//假如是你要的log文件
FileInputStream fis =new FileInputStream(file);
fis.write(buf);

这样就搞定了
细节注意点:由于log文件需要保留旧数据,所以写文件的时候要注意选用Acess流进行插入。另外,当从属服务器关闭的时候,也要发个信息过来,把对应的ip删除掉哦!

给我分呗

⑥ 两java服务端之间通信方式有哪些

JAVA进程间通信的方法主要有以下几种: (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制

⑦ java网络编程应该怎样在客户端和服务器间实现通信

以前写的,照贴了。。。服务器端:import java.awt.*;x0dx0aimport java.awt.event.WindowAdapter;x0dx0aimport java.awt.event.WindowEvent;x0dx0aimport java.io.*;x0dx0aimport java.net.*;/*6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。x0dx0a* 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。x0dx0a* (20分)(服务端程序和客户端程序分别命名为Server.java和Client.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客户端:import 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}

阅读全文

与java程序如何与服务器通信相关的资料

热点内容
珠海存储服务器地址怎么找 浏览:413
md5算法字符串长度 浏览:4
可以二次虚化的云服务器 浏览:779
思科2500编程器固件 浏览:235
php开发桌面应用程序 浏览:904
支付宝app哪里可以加油 浏览:71
路由器ttl刷编程器固件 浏览:719
纵向加密密钥协商状态时间 浏览:851
mc花雨庭服务器有些什么 浏览:809
linux制作网页 浏览:19
xlsx加密忘记了怎么办 浏览:999
app湖北农信怎么解约 浏览:426
在线编程教育项目 浏览:759
电信采购5万台服务器干什么用 浏览:200
腾讯云服务器登录地址 浏览:988
程序员在地铁上写字 浏览:555
解压包未知文件格式怎么办 浏览:578
程序员破坏数据库 浏览:331
sh格式如何编译 浏览:344
虚拟服务器云主机哪个好 浏览:98