「java客户端和服务端」java客户端和服务端建立连接

博主:adminadmin 2022-11-28 20:38:08 58

本篇文章给大家谈谈java客户端和服务端,以及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客户端和服务端的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。