JavaShuo
欄目
標籤
初寫TCP通訊程序
時間 2020-09-05
標籤
tcp
通訊
程序
欄目
系統網絡
简体版
原文
原文鏈接
Tcp通訊協議是基於OSI標準協議,有應用層、傳輸層、網絡層、物理層+數據鏈路層。TCP採用三次握手,
所謂「三次握手」就是A向B發出鏈接請求,B向A發出收到消息,而後A向B發出收到消息。
這樣能夠提升通訊鏈接的可靠性。TCP通訊能夠用Socket套接字實現,Socket正如它的英文名稱「插座」同樣,兩臺電腦要想實現通訊,每臺電腦就是一個插座,用一根虛擬的導線將兩個插座鏈接一塊兒,就能夠實現通訊。
下面看程序:
先看服務器端:
package
com.dr.me;
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.io.PrintStream;
import
java.net.ServerSocket;
import
java.net.Socket;
public
class
MyServer
{
public
static
void
main(String args[])
throws
IOException
{
//
建立一個ServerSocket對象實例
ServerSocket ss
=
new
ServerSocket(
1526
);
//
建立一個Socket實例對象,用來接受客戶端傳過來的Socket
Socket client
=
null
;
System.out.println(
"
等待客戶端的鏈接、、、、、
"
);
//
程序運行到此就會阻塞,除非有客戶端鏈接
client
=
ss.accept();
System.out.println(
"
有客戶鏈接上了---
"
);
//
建立和客戶端的通訊通道
BufferedReader in
=
new
BufferedReader(
new
InputStreamReader(client.getInputStream()));
PrintStream out
=
new
PrintStream(client.getOutputStream());
//
向客戶端輸出信息
out.println(
"
Hello how are you?
"
);
//
關閉輸入輸出流
in.close();
out.close();
}
}
在此程序中首先建立了一個ServerSocket對象,並指明瞭它的端口,客戶端經過IP和這個端口和服務器端進行鏈接。程序運行到此:
client=ss.accept();就不在往下運行直到有客戶端鏈接上,在繼續往下執行。經過 BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintStream out=new PrintStream(client.getOutputStream());
這條語句就和客戶端創建了一根虛擬的通道。
看客戶端程序:
package
com.dr.me;
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.net.Socket;
import
java.net.UnknownHostException;
public
class
MyClient
{
public
static
void
main(String args[])
throws
UnknownHostException, IOException
{
//
建立Socket實例對象
Socket client
=
new
Socket(
"
LocalHost
"
,
1526
);
//
建立String對象用來盛放從服務器端傳過來的信息,起一個緩衝做用
String str
=
null
;
//
和服務器端創建通訊鏈接
BufferedReader in
=
new
BufferedReader(
new
InputStreamReader(client.getInputStream()));
//
讀取服務器端發過來的信息放在String對象中
str
=
in.readLine();
//
把信息輸出到控制檯上
System.out.println(str);
}
}
客戶端程序:經過
Socket client=new Socket("LocalHost",1526);
新建一個Socket對象,並指明瞭要向哪臺電腦創建鏈接及該電腦的端口,「LocalHost」是本臺電腦的IP,也能夠寫成「127.0.0.1」,若是和其餘電腦鏈接則改成那臺電腦的IP。端口號必定要和服務器端的客戶端一致,不然出現異常。
運行時首先啓動服務器端程序,而後再啓動客戶端程序。
運行結果:
服務器端控制檯顯示:
啓動服務器端顯示:
客戶端鏈接後顯示:
客戶端控制檯顯示:
這個程序只是簡單說明了一下TCP協議,還有不少東西沒有寫出來,有不對的地方但願你們批評指正,沒時間了我還要上課,先寫到這吧。
相關文章
1.
java編寫TCP&&UDP方式的通訊程序
2.
TCP/IP通訊程序設計注意
3.
TCP/IP通訊程序設計方式
4.
多線程 udp通訊和 tcp通訊
5.
C#編程 TCP/IP通訊
6.
TCP協議通訊流程
7.
C# TCp 通訊
8.
socket通訊——TCP
9.
visionpro TCP通訊
10.
TCP/IP的TCP socket通訊過程
更多相關文章...
•
W3C 程序
-
W3C 教程
•
ASP 子程序
-
ASP 教程
•
算法總結-歸併排序
•
適用於PHP初學者的學習線路和建議
相關標籤/搜索
TCP通訊
通訊
通訊通道
tcp
通訊行業
Socket通訊
通訊系統
移動通訊
無線通訊
系統網絡
TCP/IP教程
PHP教程
MyBatis教程
教程
初學者
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
Duang!超快Wi-Fi來襲
2.
機器學習-補充03 神經網絡之**函數(Activation Function)
3.
git上開源maven項目部署 多module maven項目(多module maven+redis+tomcat+mysql)後臺部署流程學習記錄
4.
ecliple-tomcat部署maven項目方式之一
5.
eclipse新導入的項目經常可以看到「XX cannot be resolved to a type」的報錯信息
6.
Spark RDD的依賴於DAG的工作原理
7.
VMware安裝CentOS-8教程詳解
8.
YDOOK:Java 項目 Spring 項目導入基本四大 jar 包 導入依賴,怎樣在 IDEA 的項目結構中導入 jar 包 導入依賴
9.
簡單方法使得putty(windows10上)可以免密登錄樹莓派
10.
idea怎麼用本地maven
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
java編寫TCP&&UDP方式的通訊程序
2.
TCP/IP通訊程序設計注意
3.
TCP/IP通訊程序設計方式
4.
多線程 udp通訊和 tcp通訊
5.
C#編程 TCP/IP通訊
6.
TCP協議通訊流程
7.
C# TCp 通訊
8.
socket通訊——TCP
9.
visionpro TCP通訊
10.
TCP/IP的TCP socket通訊過程
>>更多相關文章<<