java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端
[java]代碼庫(kù)package com.gufengxiachen.sthreadchatapp;
/**
* @author GUXIA
*/
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) {
try {
//創(chuàng)建服務(wù)器端套接字,接受來(lái)自客戶端的連接請(qǐng)求
ServerSocket ss=new ServerSocket(9999);
Socket s=ss.accept();
//獲取客戶端套接字的輸出流
OutputStream os=s.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
//獲取客戶端輸入流
InputStream is=s.getInputStream();
DataInputStream dis=new DataInputStream(is);
//創(chuàng)建字符輸入流接受鍵盤(pán)輸入
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String message;
while(true){
//獲取客戶端輸入流,并打印在屏幕上,如果客戶端說(shuō)的是“再見(jiàn)”,退出
message=dis.readUTF();
System.out.println("客戶端:"+message);
if(message.equals("再見(jiàn)"))
break;
//讀取鍵盤(pán)輸入并寫(xiě)入到輸出流(客戶端的輸入流)
message=br.readLine();
dos.writeUTF(message);
}
dis.close();
dos.close();
ss.close();
s.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
//源代碼片段來(lái)自云代碼http://yuncode.net
package com.gufengxiachen.sthreadchatapp;
/**
* @author GUXIA
*/
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class ChatClient {
public static void main(String[] args) {
try {
//創(chuàng)建客戶端套接字
Socket sc=new Socket("localhost",9999);
//獲取套接字輸入流
InputStream is=sc.getInputStream();
DataInputStream dis=new DataInputStream(is);
//獲取套接字輸出流
OutputStream os=sc.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
//創(chuàng)建字符輸入流接受鍵盤(pán)輸入
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
//聊天
String message;
while(true){
//讀取鍵盤(pán)輸入的字符,寫(xiě)到客戶端輸出流
message=br.readLine();
dos.writeUTF(message);
if(message.equals("再見(jiàn)"))
break;
//讀取服務(wù)器端的數(shù)據(jù)并打印到屏幕上
message=dis.readUTF();
System.out.println("服務(wù)器:"+message);
}
dis.close();
dos.close();
sc.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
//源代碼片段來(lái)自云代碼http://yuncode.net
總結(jié)
以上是生活随笔為你收集整理的java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java多线程意义_Java多线程学习之
- 下一篇: java jtextfield 事件_J