將java編寫的socket程序運行於linux服務器上

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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章