激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java學習之利用TCP實現的簡單聊天示例代碼

java學習之利用TCP實現的簡單聊天示例代碼

2021-03-11 14:00猿上生活 Java教程

這篇文章主要給大家介紹了關于java學習筆記之利用TCP實現的簡單聊天的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

TCP

TCP協議是面向連接、保證高可靠性(數據無丟失、數據無失序、數據無錯誤、數據無重復到達)傳輸層協議。

TCP通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以只能用于端到端的通訊。

本文主要介紹了java利用TCP實現簡單聊天的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

示例代碼

使用tcp協議實現的簡單聊天功能(非常簡單的)

思想:使用2個線程,一個線程是用來接收消息的,另一個線程是用來發消息的。

客戶端Demo代碼:

?
1
2
3
4
5
6
7
8
9
10
11
public class SendDemo {
 public static void main(String[] args) throws Exception{
 Socket socket= new Socket(InetAddress.getLocalHost(),8888);
 SendImpl sendImpl= new SendImpl(socket);
 //發送的線程
 new Thread(sendImpl).start();
 //接收的線程
 ReciveImpl reciveImpl=new ReciveImpl(socket);
 new Thread(reciveImpl).start();
 }
}

服務器端Demo代碼:

?
1
2
3
4
5
6
7
8
9
10
public class ServerDemo {
 public static void main(String[] args) throws Exception {
 ServerSocket serverSocket =new ServerSocket(8888);
 Socket socket=serverSocket.accept();
 SendImpl sendImpl= new SendImpl(socket);
 new Thread(sendImpl).start();
 ReciveImpl reciveImpl=new ReciveImpl(socket);
 new Thread(reciveImpl).start();
 }
}

發送線程的Demo代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class SendImpl implements Runnable{
 private Socket socket;
 public SendImpl(Socket socket) {
 this.socket=socket;
 // TODO Auto-generated constructor stub
 }
 @Override
 public void run() {
 Scanner scanner=new Scanner(System.in);
 while(true){
  try {
  OutputStream outputStream = socket.getOutputStream();
  String string= scanner.nextLine();
  outputStream.write(string.getBytes());
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
 }
 }
}

接收線程的Demo代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ReciveImpl implements Runnable {
 private Socket socket;
 public ReciveImpl(Socket socket) {
 this.socket=socket;
 // TODO Auto-generated constructor stub
 }
 @Override
 public void run() {
 while(true ){
  try {
  InputStream inputStream = socket.getInputStream();
  byte[] b=new byte[1024];
  int len= inputStream.read(b);
  System.out.println("收到消息:"+new String(b,0,len));
  
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
 }
 }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/xuzhaocai/archive/2017/12/24/8099681.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄视频| 毛片中文字幕 | 久久福利小视频 | 亚洲国产精品久久久久久久久 | 欧美精品一区二区久久 | av手机在线免费播放 | 91久久国产综合久久91猫猫 | 九九热精品在线视频 | 亚洲男人天堂 | 成人在线免费观看网址 | 成人一级片毛片 | 99精品视频网站 | 色综合网在线观看 | 欧美亚洲国产成人 | 91av在线免费 | 精品欧美一区二区精品久久久 | 污片视频网站 | 亚洲看片网 | 久久99亚洲精品 | 成人激情视频网站 | www.99热精品 | 亚洲福利在线视频 | 国产激爽大片在线播放 | 超久久| 27xxoo无遮挡动态视频 | 一区二区三区精品国产 | 欧美一级黑人 | 久久手机在线视频 | 亚洲特黄a级毛片在线播放 激情视频免费看 | 丰满年轻岳中文字幕一区二区 | 成人国产高清 | 免费永久看羞羞片网站入口 | 看片一区| av成人在线免费观看 | 久综合| 亚洲国产精品一 | 99久久精品日本一区二区免费 | 久久成人免费观看 | 污黄视频在线观看 | 欧美一级特黄a | 国产一区二区三区手机在线 |