导航:首页 > IDC知识 > java一个服务器

java一个服务器

发布时间:2020-12-11 06:29:32

1、java 如何做一个服务器对多个客户端

服务端下一个循环 循环的开始写等待socket连接的语句版
while (true) {
socket = serverScoket.accept();
System.out.println("这是第权 " + (i+1) + " 个客户端");
System.out.println(socket);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket
.getInputStream()));

String message = reader.readLine();
new GetMessage(NetServer.this).start();
i++;
}

2、如何用Java实现Web服务器

如何用Java实现Web服务器 一、HTTP协议的作用原理

WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:

(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。

(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:

GET 路径/文件名 HTTP/1.0

文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。

(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。

3、java编写一个客户/服务器程序

下面是我自己写的一个读取并显示txt文件的demo,希望对您有帮助。
public class Client {
public static void main(String[] args) {
ClientFrame f = new ClientFrame();
}
}

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class ClientFrame extends JFrame implements ActionListener, ListSelectionListener{
private JList list = null;
private JButton sbtn = null;
private JButton cbtn = null;
private Vector v = null;
private JTextArea txt = null;
private Container control = null;
private Container btn = null;
private Socket client = null;
private DataInputStream reader = null;
private DataOutputStream writer = null;

public ClientFrame(){
this.list = new JList();
this.list.setBorder(BorderFactory.createTitledBorder("文件列表"));
this.list.addListSelectionListener(this);

this.sbtn = new JButton("显示");
this.sbtn.addActionListener(this);
this.cbtn = new JButton("清除");
this.cbtn.addActionListener(this);

this.control = new Container();
this.control.setPreferredSize(new Dimension(150, 400));
this.control.setLayout(new BorderLayout());
this.control.add(new JScrollPane(this.list),BorderLayout.CENTER);
this.btn = new Container();
this.btn.setLayout(new GridLayout(1,2));
btn.add(sbtn);
btn.add(cbtn);
this.control.add(this.btn,BorderLayout.SOUTH);

this.txt = new JTextArea();
this.txt.setEditable(false);
this.txt.setSize(350, 400);

this.setTitle("客户端");
this.setSize(500, 400);
this.setVisible(true);
Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((displaySize.width - this.getWidth()) / 2, (displaySize.height - this.getHeight()) / 2);
this.setLayout(new BorderLayout());
this.add(this.control,BorderLayout.WEST);
this.add(new JScrollPane(this.txt),BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

try {
//this.client = new Socket("192.168.32.34",6666);
this.client = new Socket("192.168.1.100",6666);
this.reader = new DataInputStream(client.getInputStream());
this.writer = new DataOutputStream(client.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void actionPerformed(ActionEvent event){
if(event.getSource() == sbtn){
if(v == null){
v = new Vector();
}
else{
v.clear();
}

try {
writer.writeUTF("getfilelist");
writer.flush();
String t = reader.readUTF();
while( t != null && !t.equals("")){
v.add(t);
t = reader.readUTF();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
this.list.setListData(v);
}

if(event.getSource() == cbtn){
this.txt.setText("");
}
}

public void valueChanged(ListSelectionEvent e) {
int i = this.list.getSelectedIndex();
if (! this.list.getValueIsAdjusting() && i != -1) {
try {
writer.writeUTF("getfilecontent_" + i);
writer.flush();
String tmp = reader.readUTF();
this.txt.setText(tmp);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

}

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;

public class Server {
static ArrayList<File> fileArray = new ArrayList<File>();
public static void main(String args[]) {
ServerSocket server = null;
Socket client = null;
String cmd = "";
try {
server = new ServerSocket(6666);
client = server.accept();

DataInputStream reader = new DataInputStream(client.getInputStream());
DataOutputStream writer = new DataOutputStream(client.getOutputStream());

while(true){
cmd = reader.readUTF();
System.out.println(cmd);
if(cmd.equals("getfilelist")){
fileArray.clear();
//fileArray = getFile(new File("D:/tmp"));
fileArray = getFile(new File("D:/学习/教程/学习笔记"));
String fn = "";
for(int k = 0; k < fileArray.size(); k ++){
fn = fileArray.get(k).getName();
writer.writeUTF(fn);
writer.flush();
}
writer.writeUTF("");
}
if(cmd.startsWith("getfilecontent_")){
int i = Integer.parseInt(cmd.split("_")[1]);
File f = fileArray.get(i);
Reader in = new InputStreamReader(new FileInputStream(f));
int tempbyte;
String str = "";
while ((tempbyte = in.read()) != -1) {
str += (char)tempbyte;
//System.out.println(str);
}
in.close();
writer.writeUTF(str);
}
}

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

private static ArrayList<File> getFile(File f) {
File[] ff = f.listFiles();
for (File child : ff) {
if (child.isDirectory()) {
getFile(child);
} else {
fileArray.add(child);
}
}
return fileArray;
}
}

4、Java的一个服务器程序

你在控制台 测试服务器程序是么
其实定个参数就行了 servlet中 就是 String a = request.getParameter(name)
如果控制台测试 就用Scanner
Scannr input = new Scanner(System.in)

在while(true)中间加入判专断
System.out.print("请输属入:")
String a = input.next();
if("end".equals(a)){
break;
}
当输入end的时候 就会结束 否则一直循环
希望能帮到你 谢谢

5、怎么用java创建一个web服务器

这个问题有点歧义,我分两种情况:

你想写一个web服务,需要一个web的服务容器,那么选用tomcat或者jetty都可以,网上有资料,很好弄。

你想用java写一个web容器。就跟tomcat一样; 那么只要你需要学习HTTP, java servlet等基础知识,按照这些标准去写就可以,可以看看tomcat的源码

6、java用什么服务器

Java 的应用服务器很多,从功能上分为两大类,JSP 服务器和 Java EE 服务器,也可分其他小类。

JBoss AS
在J2EE应用服务器领域,Jboss是发展最为迅速的应用服务器。由于Jboss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得Jboss广为流行。另外,Jboss应用服务器还具有许多优秀的特质。
其一,它将具有革命性的JMX微内核服务作为其总线结构;
其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);
其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告,Jboss应用服务器是健壮的、高质量的,而且还具有良好的性能。  为满足企业级市场日益增长的需求,Jboss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展Jboss的企业级市场,Jboss公司还签订了许多渠道合作伙伴。比如,Jboss公司同HP、Novell、Computer Associates、Unisys等都是合作伙伴。
JOnAS
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。

JFox3.0
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发! 如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台

7、用java编写一个获取时间的服务器

/**
* Created by IntelliJ IDEA.
* User: Knight_Sun
* Date: 2008-5-20
* Time: 9:19:09
* To change this template use File | Settings | File Templates.
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;

public class Showtime extends JFrame implements ActionListener {
private JButton timeBox;
private JTextField timeField;
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年M月d日 a h时m分s秒");

public Showtime(String title) throws HeadlessException {
super(title);
init();
doLay();
handleEvents();
}

private void init() {
timeBox = new JButton("刷新时间");
timeField = new JTextField(20);
}

private void doLay() {
Container container = getContentPane();
container.add(timeBox, BorderLayout.NORTH);
container.add(timeField, BorderLayout.SOUTH);

pack();
setVisible(true);
}

private void handleEvents() {
timeBox.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
Timestamp nowtime=new Timestamp(System.currentTimeMillis());
timeField.setText(dateFormat.format(nowtime.getTime()));
}

public static void main(String[] args) {
new Showtime("Show Time");
}
}
看看是不是你要的效果,一个按钮,点一下就显示最新时间.

8、用java怎样获得上一个服务器的IP?

String ip = request.getHeader("x-forwarded-for");
服务器有IP,等抄你把web项目放上服务器可以用不过当时获取的大多数是127.0.0.1
我认为你对服务器可能有些。。。。一般来说做工具之类的是用域名来获取服务器IP的,每个服务器IP,等你把项目放上去都是127.0.0.1

9、一个支持Java的服务器需要多少钱

你太不专业了,只要是支持windows、linex、unix系统的都可以,你去买一个符合你要求配置的服务器,然后装你要的软件就行了

10、一台java服务器可以跑多少个线程

Java的多线程可谓是Java编程的精华之一,运用得当可以极大地改善程序的响应时间,提高程序的并行性。在服务器程序中,由于往往要接收不同客户机的同时请求或命令,因此

与java一个服务器相关的知识