「java客户端和服务端」java客户端和服务端建立连接
本篇文章给大家谈谈java客户端和服务端,以及java客户端和服务端建立连接对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、小白求教,关于JAVA socket客户端 和服务端的通信
- 2、java 怎么建立客户 服务端连接
- 3、java怎么通过socket实现服务端与客户端交互
- 4、java客户端与服务器端
- 5、在java网络连接中有客户端和服务器端
- 6、java网络编程应该怎样在客户端和服务器间实现通信?
小白求教,关于JAVA socket客户端 和服务端的通信
1、客户端连接一般是与用户绑定的,无用户数据的socket就算能区分连接也毫无意义。一般做法是客户端利用HTTP登录,登录服务器分析各个socket服务器的负载后发送给客户端应该连接哪个socket服务器,客户端拿到登录成功后的用户ID后再连接socket服务器,此用户ID就可以用于socket服务器区分客户端连接。
2、如果自建socket服务器,建议最好不用SSH、SSM之类的框架,可控性更高,更加轻量,但工作量稍显繁多,且复杂;建议使用Netty做scoket基础框架。
3、客户端服务端通信可以用json格式的文本行(字符流,以\r\n自动做粘包断包解码),还有自定义数据格式的字节流(比如 数据包内容长度+数据包内容,以数据包内容长度手动编写代码做粘包断包解码),还可以用时下流行的protobuf。
java 怎么建立客户 服务端连接
套接字
socket
import
java.net.*;
server:
serversocket
server=new
serversocket(port);//port是端口
socket
socket=server.accept();
//等待客户机的连接请求,若连接,则创建一套接字,并将返回。
client:
socket
socket=new
socket("host",port);//host主机名(本机:127.0.0.1)
java怎么通过socket实现服务端与客户端交互
1、服务端监听一个端口,其它客户端都通过这个端口和服务端进行通信。
2、每个客户端连接上来,服务端给其一个标识ID。然后向其它所有客户端广播一下有新客户端接入,ID多少。
3、客户端要向客户端发送消息,可以以消息包的形式发送,就是把目的客户端的标识和发送的内容组成一个数据包发往服务器,服务器读取就知道要向哪 个客户端发送数据,然后把内容往目的客户端通道发送
java客户端与服务器端
没有描述清楚。按照字面理解,服务端根据客户端发送的信息判断是否发送文件是吗?服务器端根据客户端请求的信息,如果要返回文件,服务器端读取文件向客户端写文件,比如读取文件向客户端写字节流。客户端肯定是不能直接访问服务器端文件的。如果文件是放在可以公开访问的地址,返回地址,客户端下载就是了。所以你的问题没有描述清楚。
在java网络连接中有客户端和服务器端
我想你应该是想问C/S架构中的客户端和服务端
两者最常见的方式是通过Socket方式进行通信。
Socket可以理解成一个电线插座的工作过程:
服务器是电源插件, 客户端是电器
C和S通过电线和指定的插孔进行连接,连上后,S将电力源源不断发送到C, C就可以工作了。 当然C也可以反向发送信息到S。 两者可以相互通信。
在建立的过程中代码有一些不同。
在服务端采用API类是ServerSocket
在客户端采用的API是Socket类
连接建立后,双方都通过连接获取输入和输出流从而实现通信。即: InputStream is=socket.getInputStream();
is.read(...);
连接代码:
S端:
ServerSocket server=null;
try {
server=new ServerSocket(指定的端口);
}catch(Exception e){
System.out.println("不能监听:"+e.toString());
}
Socket socket=null;
try {
socket=server.accept();
InputStream is=socket.getInputStream();
//己通过建立起流,可以读取客户端发来的请求了
//同样也可以发送能过 sokcet.getOutputStream()
.....
}
catch(IOException e){
System.out.println("出错:"+e.toString());
}finally{
try {
if(socket!=null){
socket.close();
server.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
客户端:
Socket socket=null;
try {
socket=new Socket(url,端口);
//获取输出流,从而向服务端发数据
socket.getOutputStream();
//获取输入流,从而可以读服务端的数据
socket.getInputStream();
.....
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
socket.close();
}
catch(IOException e){
e.printStackTrace();
}
}
java网络编程应该怎样在客户端和服务器间实现通信?
以前写的,照贴了。。。服务器端:import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import java.net.*;/*6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。
* 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。
* (20分)(服务端程序和客户端程序分别命名为Server.java和Client.java)*/
public class N4BT6 extends Frame
{
DatagramSocket socket ;
DatagramPacket packet ;byte[] buf ;
File file ;
FileInputStream input;
String message = "该文件不存在";
TextArea text;
public N4BT6(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
buf = new byte[1024];
try
{
socket = new DatagramSocket(1230);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
file = new File(new String(packet.getData()));
socket = new DatagramSocket();
}
catch (Exception e)
{e.printStackTrace();
}
if(file.exists())
{
try
{
buf = new byte[(int)file.length()];
packet = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);
input = new FileInputStream(file);
input.read(buf);
socket.send(packet);
}
catch (IOException e)
{
e.printStackTrace();
}
}
else
{
try
{
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1234);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
new N4BT6("Server");
}
}
客户端:import java.awt.*;
import java.awt.event.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class N4BT6_2 extends Frame
{
TextArea text;
String message = "Q.txt";
DatagramSocket socket ;
DatagramPacket packet;
byte[] buf;
public N4BT6_2(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
try
{
socket = new DatagramSocket();
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1230);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
buf = new byte[1024];
socket = new DatagramSocket(1234);
packet = new DatagramPacket(buf,buf.length);
socket.receive(packet);
text.append(new String(buf));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new N4BT6_2("Client");
}
}
java客户端和服务端的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java客户端和服务端建立连接、java客户端和服务端的信息别忘了在本站进行查找喔。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。