用socket建立服務端與客戶端脑奠,把服務端放到公司ip上基公,客戶端在本地與之信息交互。

用socket建立服務端與客戶端宋欺,把服務端放到公司ip上轰豆,客戶端在本地與之信息交互。

這就需要把jar包在公司ip上部署時齿诞,只讓服務端運行酸休。于是我在網(wǎng)上找到了相應的只啟動特定類的方法。具體方法在鏈接里祷杈,親測有效雨席。

https://blog.csdn.net/qq_36929361/article/details/107411199?ops_request_misc=&request_id=&biz_id=102&utm_term=java%E5%90%AF%E5%8A%A8%E7%89%B9%E5%AE%9A%E7%B1%BB&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187


我的代碼:

packageClient;

importjava.io.*;

importjava.net.Socket;

publicclassSocketClient{

publicstaticvoidmain(String[]args) {

try{

// 和服務器創(chuàng)建連接

Socketsocket=newSocket("192.168.4.31",18003);

// 要發(fā)送給服務器的信息

OutputStreamos=socket.getOutputStream();

PrintWriterpw=newPrintWriter(os);

pw.write("客戶端發(fā)送信息");

pw.flush();

socket.shutdownOutput();

// 從服務器接收的信息

InputStreamis=socket.getInputStream();

BufferedReaderbr=newBufferedReader(newInputStreamReader(is));

Stringinfo=null;

while((info=br.readLine())!=null) {

System.out.println("我是客戶端,服務器返回信息:"+info);

? ? ? ? ?? }

br.close();

is.close();

os.close();

pw.close();

socket.close();

}catch(Exceptione) {

e.printStackTrace();

? ? ?? }

?? }

}

packageserver;

importjava.net.InetAddress;

importjava.net.InetSocketAddress;

importjava.net.ServerSocket;

importjava.net.Socket;

publicclassSocketServer{

publicstaticvoidmain(String[]args) {

try{

// 創(chuàng)建服務端socket

ServerSocketserverSocket=newServerSocket(18003);

// ? ? ? ? ?? serverSocket.bind(new InetSocketAddress("192.168.4.31", 18003));

// 創(chuàng)建客戶端socket

Socketsocket=newSocket();

//循環(huán)監(jiān)聽等待客戶端的連接

while(true) {

// 監(jiān)聽客戶端

socket=serverSocket.accept();

ServerThreadthread=newServerThread(socket);

thread.start();

InetAddressaddress=socket.getInetAddress();//返回InetAddress對象包含遠程計算機的IP地址吠式。

System.out.println("當前客戶端的IP:"+address.getHostAddress());//返回String對象與該地址的文本表示陡厘。

? ? ? ? ?? }

}catch(Exceptione) {

// TODO: handle exception

e.printStackTrace();

? ? ?? }

?? }

}

packageserver;

importjava.io.*;

importjava.net.Socket;

publicclassServerThreadextendsThread{

privateSocketsocket=null;

publicServerThread(Socketsocket) {

this.socket=socket;

?? }

@Override

publicvoidrun() {

InputStreamis=null;

InputStreamReaderisr=null;

BufferedReaderbr=null;

OutputStreamos=null;

PrintWriterpw=null;

try{

is=socket.getInputStream();//客戶端給服務端的數(shù)據(jù)流

isr=newInputStreamReader(is);

br=newBufferedReader(isr);

Stringinfo=null;

while((info=br.readLine())!=null){

System.out.println("我是服務器,客戶端說:"+info);

? ? ? ? ?? }

// ? ? ? ? ?? socket.shutdownInput();

os=socket.getOutputStream();

pw=newPrintWriter(os);

pw.write("服務器歡迎你");

pw.flush();

}catch(Exceptione) {

// TODO: handle exception

}finally{

//關(guān)閉資源

try{

if(pw!=null)

pw.close();

if(os!=null)

os.close();

if(br!=null)

br.close();

if(isr!=null)

isr.close();

if(is!=null)

is.close();

if(socket!=null)

socket.close();

}catch(IOExceptione) {

e.printStackTrace();

? ? ? ? ?? }

? ? ?? }

?? }

}

注意特占,這里server吧信息交互扔給了thread類糙置,自己只負責socket生成,持續(xù)等待接收消息和socket關(guān)閉是目。這樣的好處如果有客服端的請求不能實現(xiàn)谤饭,不會造成阻塞。

有關(guān)于線程與進程,我們大學是不教的揉抵。請點擊鏈接了解一下亡容。

https://blog.csdn.net/chao2263263364/article/details/44649569?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162705004816780265457118%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162705004816780265457118&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-44649569.first_rank_v2_pc_rank_v29&utm_term=socket+thread&spm=1018.2226.3001.4187

值得注意的是,我的這種事集成thread類實現(xiàn)多線程冤今;還可以用runnable接口闺兢。例子還在鏈接里。

https://blog.csdn.net/fexeng/article/details/51137505?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162705004816780265457118%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162705004816780265457118&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-51137505.first_rank_v2_pc_rank_v29&utm_term=socket+thread&spm=1018.2226.3001.4187

在信息交互時戏罢,發(fā)現(xiàn)在本地的客戶端能收到信息屋谭,而服務端不行」旮猓看了代碼桐磁,兩邊都是通過System.out.print輸出,所以不是socket的問題讲岁。

剛開始還以為是緩存的問題我擂,但是發(fā)現(xiàn)有flush()。后來缓艳,在命令提示符中退出服務端進程后扶踊,發(fā)現(xiàn)日志,也就是客戶端發(fā)的信息才顯示出來郎任。

然后,我試著在運行jar包時备籽,把日志打印在log文件里舶治。在運行時,看日志车猬,發(fā)現(xiàn)是成功的霉猛。所以是命令提示符這個界面不顯示日志罷了。垃圾玩意兒珠闰。

師父教我用Xshell惜浅,完美解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伏嗜,一起剝皮案震驚了整個濱河市坛悉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌承绸,老刑警劉巖裸影,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異军熏,居然都是意外死亡轩猩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來均践,“玉大人晤锹,你說我怎么就攤上這事⊥” “怎么了鞭铆?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長葫慎。 經(jīng)常有香客問我衔彻,道長,這世上最難降的妖魔是什么偷办? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任艰额,我火速辦了婚禮,結(jié)果婚禮上椒涯,老公的妹妹穿的比我還像新娘柄沮。我一直安慰自己,他們只是感情好废岂,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布祖搓。 她就那樣靜靜地躺著,像睡著了一般湖苞。 火紅的嫁衣襯著肌膚如雪拯欧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天财骨,我揣著相機與錄音镐作,去河邊找鬼。 笑死隆箩,一個胖子當著我的面吹牛该贾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捌臊,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杨蛋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了理澎?” 一聲冷哼從身側(cè)響起逞力,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糠爬,沒想到半個月后掏击,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡秩铆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年砚亭,在試婚紗的時候發(fā)現(xiàn)自己被綠了灯变。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捅膘,死狀恐怖添祸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寻仗,我是刑警寧澤刃泌,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站署尤,受9級特大地震影響耙替,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜曹体,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一俗扇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箕别,春花似錦铜幽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至母截,卻和暖如春到忽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背清寇。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工喘漏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颗管。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像滓走,于是被迫代替她去往敵國和親垦江。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容