网络编程应用:基于TCP协议【实现一个聊天程序】
生活随笔
收集整理的這篇文章主要介紹了
网络编程应用:基于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协议【实现一个聊天程序】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络编程3之TCP/IP协议
- 下一篇: 网络编程应用:基于TCP协议【实现文件上