㈠ 如何搭建java web伺服器
1.由於伺服器配置比較低綜合考慮,選擇ubuntu系統進行搭建
並通過XFTP或上述的上傳文件方法,上傳至apache-tomcat-7.0.69/webapps中
㈡ 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;
}
}
㈢ 本人初學java web,現在想把自己的電腦作為伺服器,然後外網來訪問,請問如何搭建
1.在電腦上安裝中間件(tomcat。weblogic。。。。等)發布並啟動服務。設置好埠 比如 80
2.在電腦上安裝花生殼軟體。在軟體里申請域名映射到本機。
3.訪問花生殼域名即可
㈣ 如何創建基本的Java伺服器
以下是Sun提供的一個簡單的「Knock Knock"」伺服器:
import java.net.*;import java.io.*;public class KnockKnockServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4444);
} catch (IOException e) {
System.err.println("Could not listen on port: 4444.");
System.exit(1);
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
String inputLine, outputLine;
KnockKnockProtocol kkp = new KnockKnockProtocol();
outputLine = kkp.processInput(null);
out.println(outputLine);
while ((inputLine = in.readLine()) != null) {
outputLine = kkp.processInput(inputLine);
out.println(outputLine);
if (outputLine.equals("Bye."))
break;
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}}
再簡單不過了。
㈤ 我的世界java版怎麼開伺服器
Java版需要下載伺服器核心(原版就官方,模組Sponge),然後配置伺服器,最後把IP映射,一個伺服器就好了^0^~
詳細教程
以官方核心為例
第一步,新建記事本,輸入圖片的代碼(Xmx是最大內存,Xms是最小內存,按電腦配置設置)
伺服器控制台
第五步,映射網路,網上有教程
這樣遠不如雲伺服器方便,伺服器配置高,自帶公網ip,但是貴,題主有錢可以試試
㈥ 如何用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瀏覽器上顯示出所請求的頁面。
㈦ java 如何搭建http伺服器
看你具體是想做什麼,現在現成的開源的java的http伺服器有很多,像tomcat之類的都有http伺服器功能,如果你只是單純的需要用的話,直接用tomcat就好了
但是如果你是做要自己用java實現一個http伺服器的話就要稍微麻煩一點
http伺服器,本質上還是基於tcpip協議的伺服器,首先用java的ServerSocket監聽一個埠(也可以使用開源的server組件,如quickserver之類的),然後對客戶端發上來的數據進行處理,這里就需要了解一下http協議了,因為上來的數據,都是按照http協議來組織的,你需要將請求數據解析後,將響應數據組織成http的響應,發回給客戶端。這樣一個簡單的http伺服器就實現了。
但是這個請求和響應都有很多種類,一個完整的http伺服器應該要都能夠支持,所以這裡面的工作量還是有一點的。
另外,上面說的http伺服器只是一個靜態的伺服器,如果你想讓你寫的服務具有動態功能,那你的伺服器還得提供javaee的容器功能,這樣做下去,沒准你也能寫一個tomcat出來了……
㈧ 如何用JAVA開發游戲伺服器
首先,我得說明的是,目前市場上新人很難去做pc游戲開發,要麼是做頁游要麼是手游。
頁游不清楚我就不說了,手游裡面,客戶端主要就是c2d和u3d。
如果昌困搜你尺並想做客戶端,那麼你可以轉學u3d,因為它使用的語言是csharp,這個語言和java相似。網上unity的教程也很多,你隨便找一下就有了。
再說說手游伺服器,其實我入行伺服器還是挺巧合的,當初本來是打算做客戶端的,都入職了,因為招不到伺服器,就讓我轉伺服器了。。
伺服器的教程,我至今也沒找到,而且也找不到系統的教程。
開源的伺服器框架也只熟悉kbengine和scut。其中一個是cpp做底層python做開發的,一個是csharp做開發。而且scut已經兩年沒有更新了,應該是死掉了。
所以,想要學伺服器開發,耐歷得碰點運氣。
java伺服器目前主流框架技術有網路層netty或mina,數據協議protobuf,資料庫mysql,緩存資料庫redis,jdbc一般是myts或者jpa,項目管理maven,設計層面spring
然後還需要熟悉多線程,linux的基本操作,git或者svn。
差不多了,這些都有個大致的了解,會用,應該就能找到工作了。
後面再深入需要學習的也挺多的,到時候你再根據業務需求自己琢磨著學吧。