客户端:

  1. import java.io.*;
  2. import java.net.Socket;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Scanner;
  6. /**
  7. * 客户端
  8. * */
  9. public class SocketClient {
  10. Socket socket;
  11. String address="127.0.0.1";
  12. int portNumber=4775;
  13. PrintWriter printWriter;
  14. BufferedReader bufferedReader;
  15. public SocketClient(){
  16. try {
  17. socket=new Socket(address,portNumber);
  18. bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
  19. printWriter=new PrintWriter(socket.getOutputStream());
  20. } catch (IOException e) {
  21. e.printStackTrace();
  22. }
  23. }
  24. public void chat(){
  25. System.out.println("请输入要发送的信息:");
  26. Scanner scanner=new Scanner(System.in);
  27. String str="";
  28. while(true){
  29. str=scanner.nextLine();
  30. printWriter.println(str);
  31. printWriter.flush();
  32. System.out.println(getCurTime()+"客户端:"+str);
  33. if(str.equals("bye")){
  34. break;
  35. }
  36. String server_str= null;
  37. try {
  38. server_str = bufferedReader.readLine();
  39. System.out.println(getCurTime()+"服务器:"+server_str);
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. scanner.close();
  45. close();
  46. }
  47. public static String getCurTime(){
  48. Date date=new Date();
  49. SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  50. return simpleDateFormat.format(date);
  51. }
  52. public void close(){
  53. try {
  54. printWriter.close();
  55. bufferedReader.close();
  56. socket.close();
  57. } catch (IOException e) {
  58. e.printStackTrace();
  59. }
  60. }
  61.  
  62. public static void main(String[] args) {
  63. SocketClient socketClient=new SocketClient();
  64. socketClient.chat();
  65. }
  66. }

服务端:

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.io.PrintWriter;
  5. import java.net.ServerSocket;
  6. import java.net.Socket;
  7. /**
  8. * 服务器端
  9. * */
  10. public class SocketServer {
  11. private int server_port=4775;
  12. private ServerSocket serverSocket;
  13. PrintWriter printWriter;
  14. BufferedReader bufferedReader;
  15. Socket socket;
  16. public SocketServer(){
  17. try {
  18. serverSocket=new ServerSocket(server_port);
  19. System.out.println("服务器已启动!");
  20. socket=serverSocket.accept();
  21. System.out.println("有用户接入了!");
  22. printWriter=new PrintWriter(socket.getOutputStream());
  23. bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
  24. while (true){
  25. String str=bufferedReader.readLine();
  26. System.out.println("客户端:"+str);
  27. if(str.equals("bye")){
  28. break;
  29. }
  30. printWriter.println(str);
  31. printWriter.flush();
  32. System.out.println("发送数据给客户端~");
  33. }
  34. } catch (IOException e) {
  35. e.printStackTrace();
  36. }finally {
  37. try {
  38. printWriter.close();
  39. bufferedReader.close();
  40. socket.close();
  41. } catch (IOException e) {
  42. e.printStackTrace();
  43. }
  44.  
  45. }
  46. }
  47.  
  48. public static void main(String[] args) {
  49. new SocketServer();
  50. }
  51. }

【Java】简易Socket连接实现的更多相关文章

  1. JAVA简易数据连接池Condition

    用Condition和synchronized: import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...

  2. java下tcp的socket连接案例

    package cn.stat.p4.ipdemo; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  3. java下tcp的socket连接

    serverDemo package cn.stat.p4.ipdemo; import java.io.IOException; import java.io.InputStream; import ...

  4. java socket 判断Socket连接失效

    要判断socket连接链路是否可用时,不能通过socket.isClosed() 和 socket.isConnected() 方法判断,要通过心跳包 socket.sendUrgentData(0x ...

  5. Java nio socket与as3 socket(粘包解码)连接的应用实例

    对Java nio socket与as3 socket连接的简单应用 <ignore_js_op>Java nio socket与as3 socket连接的应用实例.rar (9.61 K ...

  6. Java与Scala的两种简易版连接池

    Java版简易版连接池: import java.sql.Connection; import java.sql.DriverManager; import java.util.LinkedList; ...

  7. Dart Socket 与Java Socket连接

    -------------------------------------------------------------  Dart    SocketClient----------------- ...

  8. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

  9. Java Socket 连接 Client端 和 Server端

    Client端: import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;i ...

随机推荐

  1. 浅谈DFS,BFS,IDFS,A*等算法

    搜索是编程的基础,是必须掌握的技能.--王主任 搜索分为盲目搜索和启发搜索 下面列举OI常用的盲目搜索: 1.dijkstra 2.SPFA 3.bfs 4.dfs 5.双向bfs 6.迭代加深搜索( ...

  2. 【编程的乐趣-用python解算法谜题系列】谜题一 保持一致

    谜题一 保持一致 谜题 假设有一大群人排队等待观看棒球比赛.他们都是主场球迷,每个人都戴着队帽,但不是所有人都用同一种戴法,有些人正着戴,有些人反着戴. 假定你是保安,只有在全组球迷帽子戴法一致时才能 ...

  3. 使用npm发布、查看、引用、删除自己的包[小白推荐]

    前言  怎么使用npm发布自己的组件包呢?博主看了不少相关的文章,都没有一个好的讲述.要么丢三落四,要么就是复杂到外行人根本看不懂,甚至无从下手.于是,在博主的潜心钻研下,终于成功了!所以,我打算写一 ...

  4. Linux磁盘管理及挂载

    1.在vm workstations添加磁盘 添加完之后重启一下虚拟机 然后fdisk -l 可以看到虚拟机已经识别到了新的磁盘 2.添加磁盘分区 输入命令 fdisk /dev/sdb 命令(输入 ...

  5. 用Go语言在Linux下调用新中新DKQ-A16D读卡器,读二代证数据

    1.背景 前几天用Python在Linux下成功的获取了二代证数据,最近正在学Go语言,这两天想着用Go语言也实现一下试看看. 2.开搞C++ 这次就比较简单了,直接把CppDemo里面的SynRea ...

  6. 文件(file 类)

    题目: 编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件.之后,将这些文件中的某一个文件剪切到另外一个目录中. 代码: File_Demo /** * 包含两个类,一个主 ...

  7. Codeforces_492_E

    http://codeforces.com/problemset/problem/492/E 题目规定了gcd=1,可以在纸上模拟一下,发现每一个起点,都会经历过n个点,n个点都是不同行不同列.可以把 ...

  8. HDU_1394_线段树

    http://acm.hdu.edu.cn/showproblem.php?pid=1394 线段树入门题,每次读入一个数,就寻找在树中比它大的值的个数,然后更新树,把个数相加就是逆序数,每移动一个数 ...

  9. Codeforces_714_B

    http://codeforces.com/problemset/problem/714/B 当不同大小整数有1.2个时,肯定成立,3个时,需要判断,大于等于4个,则肯定不成立. #include & ...

  10. 【原创】为什么Mongodb索引用B树,而Mysql用B+树?

    引言 好久没写文章了,今天回来重操旧业.毕竟现在对后端开发的要求越来越高,大家要做好各种准备. 因此,大家有可能遇到如下问题 为什么Mysql中Innodb的索引结构采取B+树? 回答这个问题时,给自 ...