java socket/serversocket/thread 服务器客户端任意聊天
2015-04-22 09:31
411 查看
//服务器端代码
import java.io.*;
import java.net.*;
public class ServerTest3{
public static
void main(String[] args){
try{
//设置sever端的链接
ServerSocket s = new ServerSocket(8888);
Socket s1 = s.accept();//sever等待链接
//实例化输出流
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//实例化输入流
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
//实例化两个线程的对象
Thread msr = new MyServerReader(dis);
Thread msw = new MyServerWriter(dos);
//启动线程
msr.start();
msw.start();
}
//捕获异常
catch(SocketException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来进行接收读取数据
class MyServerReader
extends Thread{
private DataInputStream dis;
public MyServerReader (DataInputStream dis){
this.dis = dis;
}
public void run(){
String msg;
try{
while(true){
msg = dis.readUTF();
System.out.println("对方说:" + msg);
if(msg.equals("bye")){
System.out.println("对方下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来写入并发送数据
class MyServerWriter
extends Thread{
private DataOutputStream dos;
public MyServerWriter(DataOutputStream dos){
this.dos = dos;
}
public void run(){
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String msg;
try{
while(true){
msg = br.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("自己下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//客户端代码
import java.io.*;
import java.net.*;
public class ClientTest3{
public static
void main(String[] args){
try{
//链接sever端
Socket s1 = new Socket("127.0.0.1",8888);
//实例化输入流
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
//实例化输出流
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//实例化两个进程
Thread mcr = new MyClientReader(dis);
Thread mcw = new MyClientWriter(dos);
//启动两个进程
mcr.start();
mcw.start();
//捕获异常
}catch(SocketException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来进行接收读取数据
class MyClientReader
extends Thread{
private DataInputStream dis;
public MyClientReader(DataInputStream dis){
this.dis = dis;
}
@Override
public void run(){
String msg;
try{
while(true){
msg = dis.readUTF();
System.out.println("对方说:"+msg);
if(msg.equals("bye")){
System.out.println("对方下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来写入并发送数据
class MyClientWriter
extends Thread{
private DataOutputStream dos;
public MyClientWriter(DataOutputStream dos){
this.dos = dos;
}
@Override
public void run(){
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String msg;
try{
while(true){
msg = br.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("自己下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
import java.io.*;
import java.net.*;
public class ServerTest3{
public static
void main(String[] args){
try{
//设置sever端的链接
ServerSocket s = new ServerSocket(8888);
Socket s1 = s.accept();//sever等待链接
//实例化输出流
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//实例化输入流
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
//实例化两个线程的对象
Thread msr = new MyServerReader(dis);
Thread msw = new MyServerWriter(dos);
//启动线程
msr.start();
msw.start();
}
//捕获异常
catch(SocketException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来进行接收读取数据
class MyServerReader
extends Thread{
private DataInputStream dis;
public MyServerReader (DataInputStream dis){
this.dis = dis;
}
public void run(){
String msg;
try{
while(true){
msg = dis.readUTF();
System.out.println("对方说:" + msg);
if(msg.equals("bye")){
System.out.println("对方下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来写入并发送数据
class MyServerWriter
extends Thread{
private DataOutputStream dos;
public MyServerWriter(DataOutputStream dos){
this.dos = dos;
}
public void run(){
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String msg;
try{
while(true){
msg = br.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("自己下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//客户端代码
import java.io.*;
import java.net.*;
public class ClientTest3{
public static
void main(String[] args){
try{
//链接sever端
Socket s1 = new Socket("127.0.0.1",8888);
//实例化输入流
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
//实例化输出流
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
//实例化两个进程
Thread mcr = new MyClientReader(dis);
Thread mcw = new MyClientWriter(dos);
//启动两个进程
mcr.start();
mcw.start();
//捕获异常
}catch(SocketException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来进行接收读取数据
class MyClientReader
extends Thread{
private DataInputStream dis;
public MyClientReader(DataInputStream dis){
this.dis = dis;
}
@Override
public void run(){
String msg;
try{
while(true){
msg = dis.readUTF();
System.out.println("对方说:"+msg);
if(msg.equals("bye")){
System.out.println("对方下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
//创建一个进程用来写入并发送数据
class MyClientWriter
extends Thread{
private DataOutputStream dos;
public MyClientWriter(DataOutputStream dos){
this.dos = dos;
}
@Override
public void run(){
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String msg;
try{
while(true){
msg = br.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("自己下线,程序退出");
System.exit(0);
}
}
}catch(IOException e){
System.out.println(e);
}
}
}
相关文章推荐
- [Java] Socket/ServerSocket/Thread 控制台聊天程序--两人任意聊
- [Java] Socket/ServerSocket/Thread 控制台聊天程序--两人任意聊
- Java 利用 Socket 实现服务器客户端聊天
- ServerSocket 、Socket 创建Java服务器与客户端以JSON格式聊天
- java38.Socket通信------使用ServerSocket建立聊天服务器---2
- Android 使用Socket实现服务器与手机客户端的长连接二:多Client对一Server聊天
- JAVA Socket编程——基于ServerSocket建立聊天服务器
- Java 基于多客户端的ServerSocket—聊天服务器端,客户端Socket “操作文件”系统的程序拼接
- Java 的 Socket 服务器和客户端通信的例子
- ServerSocket和Socket建立通信(服务器和客户端循环接收发送)
- C++基于socket的单线程服务器客户端聊天程序(TCP)
- 利用 Socket 实现服务器客户端聊天
- 一个 Java 的 Socket 服务器和客户端通信的例子
- 一个 Java 的 Socket 服务器和客户端通信的例子
- Java 的 Socket 服务器和客户端通信的例子 存在一个小问题
- 利用Python中SocketServer 实现客户端与服务器间非阻塞通信
- java socket 单服务器多客户端实时通信
- Java网络编程ServerSocket的实现服务器与用户之间的通信的基本步骤
- Java Socket多个客户端与服务器通信
- 使用ServerSocket建立聊天服务器(一)