Java_socket程序学习03-一个客户端对一个服务器-交互(客户端)--02
来源:互联网 发布:常用算法 编辑:程序博客网 时间:2024/06/05 07:56
配合着Java_socket程序学习03中服务器端一起使用可以实现一个简单的聊天程序。
package tcp;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ThreadServer {
/**
* @param args
*/
static int portNo=3337;
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(portNo);
System.out.println("The Server is start"+ss);
//当有客户端连接的时候 ,标记客户端为socket01
Socket socket = ss.accept();//阻塞中,等待客户端接入
System.out.println("Client is connected"+socket);
//socket客户端过来的输入流,原本位置是这里,但是下边的线程子类不认in,所以把它调到了线程里
//BufferedReader in = new BufferedReader(new InputStreamReader(socket01.getInputStream()));
//来自服务器自身的键盘输入流,记录键盘操作,原本位置是这里,但是下边的线程子类不认ins,所以把它调到了线程里
//BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
//向客户端方向的输出流
//PrintStream out=new PrintStream(socket01.getOutputStream());
//实例化两个线程类
Syin sy = new Syin(socket);
Soin so = new Soin(socket);
sy.start();
so.start();
//socket.close();
ss.close();
System.out.print("11111111111111111111111111111111111");
}
//定义两个线程类1.class Syin键盘流处理 2.class Soin socket客户端流
public static class Syin extends Thread {
Socket socket01 ;
public Syin(){
}
public Syin(Socket a){
this.socket01=a;
System.out.print("服务器键");
};
public void run() {
try{
BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
PrintStream outs=new PrintStream(socket01.getOutputStream());
while(true){
String str_sy = ins.readLine();
if(str_sy.equals("bb"))
break;
System.out.println("盘的输入内容是:"+str_sy);
outs.println(str_sy);
}
socket01.close();
}catch (Exception e) {
e.printStackTrace();
}
};
}
//
public static class Soin extends Thread {
Socket socket01 ;
public Soin(){
}
public Soin(Socket b){
this.socket01=b;
System.out.print("来自客户");
};
public void run(){
try{
BufferedReader ins = new BufferedReader(new InputStreamReader(socket01.getInputStream()));
PrintStream outs=new PrintStream(socket01.getOutputStream());
while(true){
String str_sy = ins.readLine();
if(str_sy.equals("bb"))
break;
System.out.println("端的信息:"+str_sy);
}
socket01.close();
}catch (Exception e)
{
e.printStackTrace();
}
};
}
}
0 0
- Java_socket程序学习03-一个客户端对一个服务器-交互(客户端)--02
- Java_socket程序学习03-一个客户端对一个服务器-交互(服务器端)--01
- Java_socket程序学习01-一个客户端对一个服务器
- Java_socket程序学习02-一个客户端对一个服务器-客户端键盘输入
- Java_socket程序学习04-一个服务器对多个一个客户端
- 【UNP学习笔记】一个简单的服务器/客户端程序
- 服务器、客户端简单交互程序
- 一个服务器多客户端
- 一个简单的servlet和客户端交互的程序
- iPhone网络编程初体验-简单的聊天程序(适合新手学习客户端服务器交互)
- 搭建一个后台服务器--客户端
- 用Java实现一个简单的服务器与客户端程序
- 使用jrtplib写的一个简单服务器和客户端程序
- 用消息队列编写一个客户端服务器通信的程序
- 用Java实现一个简单的服务器与客户端程序
- Python一个简单的通信程序(客户端 服务器)
- VB中一个服务器和多个客户端的程序
- vsftp,做一个文件传输服务器和客户端程序
- log4j2配置
- Android应用资源的分类和存储
- Intel Thread Building Blocks (TBB) 的介绍
- 云端下载图片各线程详解(自己发明的哦,独此一家)
- Allegro PCB封装PIN NUM 修改 删除 增加
- Java_socket程序学习03-一个客户端对一个服务器-交互(客户端)--02
- javascript中需要注意的几个细节
- ld: symbol(s) not found for architecture x86_64
- linux 关机命令
- 网络硬件完全技术
- HDU 1506 Largest Rectangle in a Histogram (线性dp)
- 进程创建函数fork()、vfork()
- shell脚本直接运行和crontab结果不一样
- eclipse 调试快捷键