java客户端与服务器(java客户端与服务器互相聊天)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享java客户端与服务器的知识,其中也会对java客户端与服务器互相聊天进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
java中如何实现从客户端发送文件到服务器端?
服务器端源码:\x0d\x0aimport java.io.BufferedReader;\x0d\x0aimport java.io.File;\x0d\x0aimport java.io.FileNotFoundException;\x0d\x0aimport java.io.FileOutputStream;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.io.InputStream;\x0d\x0aimport java.io.InputStreamReader;\x0d\x0aimport java.net.ServerSocket;\x0d\x0aimport java.net.Socket;\x0d\x0a\x0d\x0a/**\x0d\x0a *\x0d\x0a * 文件名:ServerReceive.java\x0d\x0a * 实现功能:作为服务器接收客户端发送的文件\x0d\x0a *\x0d\x0a * 具体实现过程:\x0d\x0a * 1、建立SocketServer,等待客户端的连接\x0d\x0a * 2、当有客户端连接的时候,按照双方的约定,这时要读取一行数据\x0d\x0a * 其中保存客户端要发送的文件名和文件大小信息\x0d\x0a * 3、根据文件名在本地创建文件,并建立好流通信\x0d\x0a * 4、循环接收数据包,将数据包写入文件\x0d\x0a * 5、当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件\x0d\x0a * 6、文件接收工作结束\x0d\x0a\x0d\x0apublic class ServerReceive {\x0d\x0a \x0d\x0a public static void main(String[] args) {\x0d\x0a \x0d\x0a /**与服务器建立连接的通信句柄*/\x0d\x0a ServerSocket ss = null;\x0d\x0a Socket s = null;\x0d\x0a \x0d\x0a /**定义用于在接收后在本地创建的文件对象和文件输出流对象*/\x0d\x0a File file = null;\x0d\x0a FileOutputStream fos = null;\x0d\x0a \x0d\x0a /**定义输入流,使用socket的inputStream对数据包进行输入*/\x0d\x0a InputStream is = null;\x0d\x0a \x0d\x0a /**定义byte数组来作为数据包的存储数据包*/\x0d\x0a byte[] buffer = new byte[4096 * 5];\x0d\x0a \x0d\x0a /**用来接收文件发送请求的字符串*/\x0d\x0a String comm = null;\x0d\x0a\x0d\x0a/**建立socekt通信,等待服务器进行连接*/\x0d\x0a try {\x0d\x0a ss = new ServerSocket(4004);\x0d\x0a s = ss.accept();\x0d\x0a } catch (IOException e) {\x0d\x0a e.printStackTrace();\x0d\x0a }\x0d\x0a\x0d\x0a/**读取一行客户端发送过来的约定信息*/\x0d\x0a try {\x0d\x0a InputStreamReader isr = new InputStreamReader(s.getInputStream());\x0d\x0a BufferedReader br = new BufferedReader(isr);\x0d\x0a comm = br.readLine();\x0d\x0a } catch (IOException e) {\x0d\x0a System.out.println("服务器与客户端断开连接");\x0d\x0a }\x0d\x0a \x0d\x0a /**开始解析客户端发送过来的请求命令*/\x0d\x0a int index = comm.indexOf("/#");\x0d\x0a \x0d\x0a /**判断协议是否为发送文件的协议*/\x0d\x0a String xieyi = comm.substring(0, index);\x0d\x0a if(!xieyi.equals("111")){\x0d\x0a System.out.println("服务器收到的协议码不正确");\x0d\x0a return;\x0d\x0a }\x0d\x0a \x0d\x0a /**解析出文件的名字和大小*/\x0d\x0a comm = comm.substring(index + 2);\x0d\x0a index = comm.indexOf("/#");\x0d\x0a String filename = comm.substring(0, index).trim();\x0d\x0a String filesize = comm.substring(index + 2).trim();\x0d\x0a\x0d\x0a/**创建空文件,用来进行接收文件*/\x0d\x0a file = new File(filename);\x0d\x0a if(!file.exists()){\x0d\x0a try {\x0d\x0a file.createNewFile();\x0d\x0a } catch (IOException e) {\x0d\x0a System.out.println("服务器端创建文件失败");\x0d\x0a }\x0d\x0a }else{\x0d\x0a /**在此也可以询问是否覆盖*/\x0d\x0a System.out.println("本路径已存在相同文件,进行覆盖");\x0d\x0a }\x0d\x0a \x0d\x0a /**【以上就是客户端代码中写到的服务器的准备部分】*/\x0d\x0a\x0d\x0a/**\x0d\x0a * 服务器接收文件的关键代码*/\x0d\x0a try {\x0d\x0a /**将文件包装到文件输出流对象中*/\x0d\x0a fos = new FileOutputStream(file);\x0d\x0a long file_size = Long.parseLong(filesize);\x0d\x0a is = s.getInputStream();\x0d\x0a /**size为每次接收数据包的长度*/\x0d\x0a int size = 0;\x0d\x0a /**count用来记录已接收到文件的长度*/\x0d\x0a long count = 0;\x0d\x0a \x0d\x0a /**使用while循环接收数据包*/\x0d\x0a while(count
回答于 2022-12-11
java客户端与服务器
先启动服务器,再启动客户端
//Server.java
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
int port = 12345;
ServerSocket server = new ServerSocket(port);
System.out.println("服务器就绪,等待用户登录:");
Socket so = server.accept();
byte[] buff = new byte[1024];
int read = so.getInputStream().read(buff);
String str = new String(buff,0,read);
String[] split = str.split(",");
for(int i=0; isplit.length; i++)
System.out.println(split[i]);
so.close();
server.close();
}
}
//Client.java
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
int port = 12345;
System.out.print("在此输入用户名和密码,并用','分开:");
byte[] buff = new byte[1024];
int read = System.in.read(buff);
String str = new String(buff,0,read);
Socket so = new Socket("localhost",port);
so.getOutputStream().write(str.getBytes());
so.getOutputStream().flush();
so.getOutputStream().close();
so.close();
}
}
java网络编程应该怎样在客户端和服务器间实现通信?
以前写的,照贴了。。。服务器端:import java.awt.*;\x0d\x0aimport java.awt.event.WindowAdapter;\x0d\x0aimport java.awt.event.WindowEvent;\x0d\x0aimport java.io.*;\x0d\x0aimport java.net.*;/*6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。\x0d\x0a* 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。\x0d\x0a* (20分)(服务端程序和客户端程序分别命名为Server.java和Client.java)*/\x0d\x0apublic class N4BT6 extends Frame\x0d\x0a{\x0d\x0aDatagramSocket socket ;\x0d\x0aDatagramPacket packet ;byte[] buf ;\x0d\x0aFile file ;\x0d\x0aFileInputStream input;\x0d\x0aString message = "该文件不存在";\x0d\x0aTextArea text;\x0d\x0apublic N4BT6(String title)\x0d\x0a{\x0d\x0asuper(title);\x0d\x0atext = new TextArea(6,4);\x0d\x0aadd(text);\x0d\x0asetSize(400, 300);\x0d\x0asetVisible(true);\x0d\x0aaddWindowListener(new WindowAdapter()\x0d\x0a{\x0d\x0apublic void windowClosing(WindowEvent e)\x0d\x0a{\x0d\x0adispose();\x0d\x0a}\x0d\x0a});\x0d\x0a\x0d\x0abuf = new byte[1024];\x0d\x0atry\x0d\x0a{\x0d\x0asocket = new DatagramSocket(1230);\x0d\x0apacket = new DatagramPacket(buf, buf.length);\x0d\x0asocket.receive(packet);\x0d\x0afile = new File(new String(packet.getData()));\x0d\x0asocket = new DatagramSocket();\x0d\x0a} \x0d\x0acatch (Exception e)\x0d\x0a{e.printStackTrace();\x0d\x0a}\x0d\x0a\x0d\x0aif(file.exists())\x0d\x0a{\x0d\x0atry\x0d\x0a{\x0d\x0abuf = new byte[(int)file.length()];\x0d\x0apacket = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);\x0d\x0ainput = new FileInputStream(file);\x0d\x0ainput.read(buf);\x0d\x0asocket.send(packet);\x0d\x0a}\x0d\x0acatch (IOException e) \x0d\x0a{\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0aelse\x0d\x0a{\x0d\x0atry\x0d\x0a{\x0d\x0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,\x0d\x0aInetAddress.getLocalHost(),1234);\x0d\x0asocket.send(packet);\x0d\x0a}\x0d\x0acatch (Exception e) \x0d\x0a{\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0apublic static void main(String[] args)\x0d\x0a{\x0d\x0anew N4BT6("Server");\x0d\x0a}\x0d\x0a}\x0d\x0a客户端:import java.awt.*;\x0d\x0aimport java.awt.event.*;\x0d\x0aimport java.net.DatagramPacket;\x0d\x0aimport java.net.DatagramSocket;\x0d\x0aimport java.net.InetAddress;public class N4BT6_2 extends Frame\x0d\x0a{\x0d\x0aTextArea text;\x0d\x0aString message = "Q.txt";\x0d\x0aDatagramSocket socket ;\x0d\x0aDatagramPacket packet;\x0d\x0abyte[] buf;\x0d\x0apublic N4BT6_2(String title)\x0d\x0a{\x0d\x0asuper(title);\x0d\x0atext = new TextArea(6,4);\x0d\x0aadd(text);\x0d\x0asetSize(400, 300);\x0d\x0asetVisible(true);\x0d\x0aaddWindowListener(new WindowAdapter()\x0d\x0a{\x0d\x0apublic void windowClosing(WindowEvent e)\x0d\x0a{\x0d\x0adispose();\x0d\x0a}\x0d\x0a});\x0d\x0atry\x0d\x0a{\x0d\x0a\x0d\x0asocket = new DatagramSocket();\x0d\x0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,\x0d\x0aInetAddress.getLocalHost(),1230);\x0d\x0asocket.send(packet);\x0d\x0a}\x0d\x0acatch (Exception e) \x0d\x0a{\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a\x0d\x0atry\x0d\x0a{\x0d\x0abuf = new byte[1024];\x0d\x0asocket = new DatagramSocket(1234);\x0d\x0apacket = new DatagramPacket(buf,buf.length);\x0d\x0asocket.receive(packet);\x0d\x0atext.append(new String(buf));\x0d\x0a}\x0d\x0acatch (Exception e) \x0d\x0a{\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0apublic static void main(String[] args)\x0d\x0a{\x0d\x0anew N4BT6_2("Client");\x0d\x0a}\x0d\x0a}

java客户端与服务器端
没有描述清楚。按照字面理解,服务端根据客户端发送的信息判断是否发送文件是吗?服务器端根据客户端请求的信息,如果要返回文件,服务器端读取文件向客户端写文件,比如读取文件向客户端写字节流。客户端肯定是不能直接访问服务器端文件的。如果文件是放在可以公开访问的地址,返回地址,客户端下载就是了。所以你的问题没有描述清楚。
客户端怎么连接服务器
问题一:客户端如何连接服务器 客户端通过终端(终端有下载的软件,包括浏览器也属于终端),通过一个端口,连接到服务器指定的端口。服务器会监听这个端口,如何有这个端口的应用访问,则和终端用户交互,从而达到客户端连接服务器的作用。
问题二:客户端怎么连接到服务器的数据库上? 既然是这种数据库,那你就在你的电脑上装SQL SEVER数据库,然后下载对应的数据库管理软件就行了,当然在你安装完本地的数据库后要想访问远程服务器上的数据库一定需要配置,至于你说的一步一步,我觉得你应该百度搜一下,具体的安装都有
问题三:Java中客户端与服务器之间怎样连接? socket通信
客户端:Socket s= new Socket (localhost,8888);
服务器:ServerSocket ss户= new ServerSocket(8888);
Socket s=ss.accept();
问题四:客户端无法连接到服务器 您好
您可以尝试一下右击服务器的我的电脑-属性,找到远程桌面的部分,允许下
到服务器防火墙看看,是不是禁用了远程桌面,不懂的话直接关闭防火墙,也希望你没安装第三方网络防火墙
问题五:跪求金蝶K3客户端怎么连接服务器 K3客户端和服务器都要完整安装好,确定是在同一个网关内,并且能够相互PING得通。
然后再服务器上新建一个,与客户端开机登录的用户名和密码一致的用户(我的电脑-右击-管理-本地用户和组-用户),
之后就是在客户端远程组建配置工具中测试,通过后确定就OK了。
问题六:java怎么知道客户端连接服务器 java socket就可以完成
问题七:Android客户端怎么与服务器数据库连接? 客户端和服务端的数据库连接,是要服务器端做开发的,像javaee开发的服务端,然后客户端通过等连接到服务端,然后服务端通过一系列操作,吧数据返回给客户端,这样就完成了一次连接。
问题八:上网认证客户端无法连接认证服务器怎么办? 认证客户端常见问题解答
1.客户端一运行即消失的故障?
答:故障原因:如果用户的电脑设置了多个DNS或多个IP地址及系统里有system32.exe这个进程,可能是木马进程序,有可能伪装成其它的名字的话,会导致以上故障。
故障解决办法如下:正确设置IP地址(只设置网络中心提供的地址)及DNS地址。
2.客户端提示“找不到合适的网卡”故障信息?
答:故障原因:系统没有正确获得网卡信息,或者网卡有问题。
故障解决办法如下:退出并重新打开客户端,如果问题依旧存在,请将网卡驱动程序卸载重装,如果还是不能解决问题,更换一张网卡。
3.客户端提示“目前系统工作环境与软件运行环境相冲突,软件不能正常运行,CODE=2”的故障信息?
答:故障原因:安装了多块网卡,与客户端运行的环境不符合要求。
故障解决办法:卸载或者禁用多余网卡,只保留一张网卡运行。
4.客户端提示“目前系统工作环境与软件运行环境相冲突,软件不能正常运行CODE=4”的故障信息?
答:故障原因:由于安装了代理软件,与客户端运行的环境不符合要求。
故障解决办法:关闭或卸载代理服务器以及一切可能成为代理服务器的软件。
5.客户端认证失败,没有任何的错误提示信息?
答:故障原因:WINXP启用了系统自带的802.1X功能。
故障解决办法:双击网络连接图标,把属性里面的身份验证标签下“启用802.1X身份认证”前的勾去掉。
6.客户端提示认证失败,提示“已达到最大连接数”的故障?
答:故障原因:使用的帐号已在线,可能使用了别人的帐号,或者帐号输入错误。
故障解决办法:确认自己帐号正确性,如果确属自己帐号,则告知相关请有效证件,要求网络中心将其帐号下线。
7.客户端提示认证失败,提示“IP类型错误”的故障?
答:故障原因:认证服务器没有获得IP地址信息。
故障解决办法:在本地连接属性里面把IP获取方式改为自动获取,如果还是不能解决,请将网卡驱动程序卸载重装一次。
8.客户端提示认证失败,提示“XXXX绑定错误”的故障?
答:故障原因:非正常使用帐号;目前使用的网卡相关设置和教育技术办用户信息数据库里的相关绑定记录不一致。
故障解决方法:正确使用个人帐号,不要随意更改设置;带有效证件到网络中心做修改。
9.客户端提示认证失败,提示“网卡未连接上”的故障?
答:故障原因:网线连接不正确,交换机柜停电等。
故障解决方法:检查网线是否正常,确认机房交换机柜是否停电。
10.客户端提示认证失败,认证客户端停顿在:“寻找认证服务器。。。”的故障?
答:故障原因:可能网卡有问题,或者没有选择“使用私有组播地址认证”。
故障解决方法:检查网线是否正常;将速率改成10M,在实际运行中存在某些线路无法进行100M的数据交换;在认证客户端中设置“使用私有组播地址认证”;重装网卡驱动程序;如果问题依旧存在,更换一张网卡。如果在更换网卡之后出现“MAC地址绑定错误”,证明以前用的网卡质量不好,请使用新的网卡,并网络中心重新绑定。
11.客户端提示初始化网卡信息失败的故障?
答:故障原因:电脑有多个网卡信息。
故障解决方法:禁用掉无用的网卡,特别注意,很多笔记本电脑带无线网卡,一定要禁用掉!
12.客户端无法认证成功,提示“不在认证时段内”的故障?
答:故障原因:不在允许的时段内认证使用网络。
故障解决方法:请确认时间段是否为管理人员允许上网的时段。
13.客户端无法认证成功,提示“用户不存在或者密码错”的故障?
......
问题九:socket怎样使得多个客户端连接到一个服务器 在服务器端设置一个标志变量,如int flag = 0,当有客户端连接上了,就检查那个标志变量是否为0,如果是的话就连接,然后将这个标志设为1。如果为1的话就拒绝连接。我不知道你是用什么语言编写的,所以具体怎么去拒绝连接就自己多想想吧・・・
在java里面很容易实现,下面是我在java中实现的服务器端代码,希望对你有帮助。。。
package ob;
import java.io.IOException;
import java.ServerSocket;
import java.Socket;
public class Server {
Socket socket;
boolean flag = true;
public void createServer() {
try {
ServerSocket serverSocket = new ServerSocket(9090);
while (true) {
socket = serverSocket.accept();
if (flag) {
System.out.println(有用户连上・・・);
System.out.println(ip:+socket.getRemoteSocketAddress().toString()+ port:+socket.getPort());
flag = false;
}else{
System.out.println(有用户连上・・・);
socket.close();
System.out.println(关闭用户连接・・・);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server().createServer();
}
}
问题十:socket客户端如何连接服务器端 import java.*;
import java.lang.*;
import java.io.*;
public class MySocketServer
{
public static void main(String args[]) throws IOException
{
try{
ServerSocket myServer = new ServerSocket(8018);
System.out.println(正在监听端口:+myServer.getLocalPort());
Socket myClient = null;
boolean flag = true;
String InputMessage = null;
int c;
while(flag)
{
myClient = myServer.accept();
接收客户端的信息,如果不是Stop就继续监听,加个if判断
DataInputStream dataIn = new DataInputStream(myClient.getInputStream());
DataInputStream dataIn = new DataInputStream(new BufferedInputStream(myClient.getInputStream()));
OutputStream dataOut = myClient.getOutputStream();
while( (InputMessage = dataIn.readLine()) != null )
{
if( InputMessage.equals(stop))
{
flag = false;
break;
}
else
{
System.out.println(从客户端接收到的信息是:+InputMessage);
输入:读取至 末尾-1结束,遇到回车'\n'结束:
while((c=System.in.read())!= -1)
{
dataOut.write((byte)c);
if( c== '\n')
{
dataOut.flush();
......
java客户端与服务器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java客户端与服务器互相聊天、java客户端与服务器的信息别忘了在本站进行查找喔。
