1.使用eclipse編寫一個簡單的服務器程序
MyserverSocket.java
package com.serverSocket.main;
//服務器程序,連接服務器後會接收到welcome,在沒對他發送一組數據後,將返回OK,並且在控制檯顯示
public class MyserverSocket {
public static void main(String[] args) {
new ServerListener().start(); //建立實時監聽客服端
}
}
ServerListener.java
package com.serverSocket.main;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
//該類用於等待客服端連接
public class ServerListener extends Thread {
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(23457); //端口
while(true){
//每當有一個客服端連接就有一個socket
Socket socket = serverSocket.accept();//阻塞
// JOptionPane.showMessageDialog(null, "有客服端連接到本地的23457端口");
// 獲得輸入流
InputStream inputStream = socket.getInputStream();
//獲得輸出流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
//進入時輸入顯示welcome
String reply="welcome";
pw.write(reply);
pw.flush();
//讀取用戶信息
byte buffer[] = new byte[1024 * 4];
int temp = 0;
// 沒接收到一段數據將其顯示在控制檯,並且返回OK
while ((temp = inputStream.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, temp));
pw.write("OK!");
pw.flush();
}
//5.關閉資源
pw.close();
os.close();
// br.close();
inputStream.close();
socket.close();
serverSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
這裏由於accept方法將阻塞線程,我於是新建立了一個線程來監聽端口
工程下載
2.將程序導出爲jar包
點擊eclipse 左上角 File - > Export,選擇java欄裏面的jar
next,選擇你需要打包的工程,選擇放置位置後再next
最後選擇程序的入口
3.將包上傳到服務器
這裏可以直接在服務器裏面使用代碼上傳,也可以使用winscp軟件上傳
我這裏使用了後者,因爲方面嘛
建立連接
拖拽放入文件
4.運行
筆者使用的是cenos系統,首先測試是否安裝java,如果沒有可以輸入
yum -y list java* //查看java包
yum -y install java-1.7.0-openjdk* //安裝java包
之後可以使用運行代碼
java -jar xxxx.jar