public class Server {

    public static void main(String[] args) {

        try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动中....");
//accept()是在一个套接口接受的一个连接。accept()是c语言中网络编程的重要的函数,
//本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。
Socket socket = serverSocket.accept();//获取Socket
InputStream is = socket.getInputStream();//获取输入流
InputStreamReader isr = new InputStreamReader(is);//InputStreamReader类是从字节流到字符流的桥接器
BufferedReader br = new BufferedReader(isr);//缓冲流
System.out.println("客户端数据" + br.readLine());
String info = null;
while((info = br.readLine()) != null){
System.out.println("客户端传递的信息" + info);
}
socket.shutdownInput();//shutdownInput和shutdownOutput只关闭相应的输入、输出流,不会同时关闭网络连接的功能。
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("欢迎您!!");
pw.flush();//flush()是清空,而不是刷新 将缓冲区的内容输出 pw.close();
os.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} } }
public class Client {

    public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
System.out.println("客户端启动中....");
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("admin");
pw.flush();
socket.shutdownOutput(); InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info = br.readLine()) != null){
System.out.println("服务端返回的信息" + info);
} os.close();
pw.close();
is.close();
br.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
} }

最新文章

  1. android 很多牛叉布局github地址(转)
  2. [bzoj3694]最短路
  3. (整理)IIS 7 503 "service unavailable" errors
  4. 关于yaha中文分词(将中文分词后,结合TfidfVectorizer变成向量)
  5. SpringMVC Controller 返回值的可选类型
  6. datareader几种用法总结
  7. android安卓最新快捷环境搭建(转)
  8. hdu1022 Train Problem I
  9. Learning Cocos2d-x for WP8(7)——让Sprite动起来
  10. Unity3d场景漫游---iTween实现
  11. 基于阿里云的JavaEE系统框架介绍
  12. BZOJ4503 两个串 多项式 FFT
  13. 2018-2019-1 20189210 《LInux内核原理与分析》第四周作业
  14. 排序算法之冒泡排序的思想以及Java实现
  15. Oracle DB 使用RMAN恢复目录
  16. Java设计模式学习记录-解释器模式
  17. SQL Server如何更改系统用户dbo的所属账号
  18. 【连载6】二手电商APP的导购功能与关系链机制分析
  19. Scala中的柯里化
  20. RNA-seq流程需要进化啦!

热门文章

  1. 用 async/await 来处理异步(转)
  2. 设备驱动基础学习--platform driver简单实现
  3. 68 for循环2 for循环最简单的用法
  4. GM2引擎脚本召唤宝宝说明
  5. Unity UGUI事件接口概述
  6. red hat 报错:apt-get:找不到命令
  7. pyqt5去单选框外包围的矩形框
  8. 03-书城bean类中的id缺少get属性
  9. python的爬虫小入门
  10. 吴裕雄 python 机器学习——模型选择参数优化暴力搜索寻优GridSearchCV模型