日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络编程应用:基于TCP协议【实现一个聊天程序】

發布時間:2025/3/20 编程问答 7 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络编程应用:基于TCP协议【实现一个聊天程序】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要求:

基于TCP協議實現一個聊天程序,客戶端發送一條數據,服務器端發送一條數據

客戶端代碼:

package Homework1;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner;public class Client {public static void main(String[] args){System.out.println("客戶端已啟動");Socket socket=null;InputStream is=null;OutputStream os=null;try {//1.創建客戶端套接字Socket對象socket=new Socket("Localhost", 8888);//2.創建與Socket對接的輸入輸出流對象is=socket.getInputStream();os=socket.getOutputStream();//3.創建聊天用的Scanner對象Scanner input=new Scanner(System.in);byte[] bs=new byte[1024];//4.給服務器(乙方)發送信息while(true){//輸入要發送的數據String string=input.next();//將數據傳輸出去os.write(string.getBytes());os.flush();//如果有一方回復了:bye,則表示聊天結束if(string.equals("bye")){break;}//5.接收服務器(乙方)回復的消息int count=is.read(bs);if(new String(bs,0,count).equals("bye")){break;}System.out.println("服務器回復:"+new String(bs,0,count));}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(os!=null){try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }

服務端:

package Homework1;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner;public class Server {public static void main(String[] args){System.out.println("服務端已啟動");ServerSocket serverSocket=null;InputStream is=null;OutputStream os=null;try {//1.創建服務器端ServerSocket對象serverSocket=new ServerSocket(8888);//2.得到Socket對象socket=serverSocket.accept();//3.得到與Socket對應的輸入輸出流is=socket.getInputStream();os=socket.getOutputStream();//4.創建聊天使用的Scanner對象Scanner input=new Scanner(System.in);byte[] bs=new byte[1024];while(true){//5.接收客戶端(甲方)信息int count=0;count=is.read(bs);//如果客戶端回復了:bye,表示結束聊天if(new String(bs,0,count).equals("bye")){break;}System.out.println("客戶端說:"+new String(bs,0,count));//6.回復客戶端(甲方)String string=input.next();os.write(string.getBytes());os.flush();if(string.equals("bye")){break;}}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(os!=null){try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(serverSocket!=null){try {serverSocket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }

運行結果:


客戶端(甲方)聊天列表:


服務器端(乙方)聊天列表:

總結

以上是生活随笔為你收集整理的网络编程应用:基于TCP协议【实现一个聊天程序】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。