• Java Socket编程


    基于Tcp连接

    Server端

     1 /*
     2 需求:定义端点接收数据并打印在控制台上。
     3 
     4 服务端:
     5 1,建立服务端的socket服务。ServerSocket();并监听一个端口
     6 
     7 2,获取连接过类的客户端对象。
     8     通过ServerSocket的accept方法。没有连接就会等,所以这个方法是阻塞式的
     9 3,客户端如果发送过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流
    10     来读取发过来的数据。并打印在控制台上
    11 4, 关闭服务端(可选操作)
    12 */
    13 
    14 import java.io.*;
    15 import java.net.*;
    16 
    17 
    18 class Server{
    19     public static void main(String []  args) throws IOException{
    20         //建立服务端的Socket服务,并监听一个端口。
    21         ServerSocket ss = new  ServerSocket(10009);
    22 
    23         //通过ServerSocket的accept方法,获取客户端连接过来的对象。
    24 
    25         Socket s = ss.accept();
    26 
    27         //获取发送数据的客户端主机ip地址
    28         String ip = s.getInetAddress().getHostAddress();
    29 
    30         //获取客户端发过来的数据,要使用客户端的对象的读取流方法来读取数据
    31 
    32         InputStream in = s.getInputStream();
    33 
    34         //字节流转换为字符流
    35         InputStreamReader ir = new InputStreamReader(in);
    36 
    37         //添加缓冲区
    38         BufferedReader bf = new BufferedReader(ir);
    39 
    40         String a = bf.readLine();
    41         //byte[] buf=new byte[1024];
    42         //int a = in.read(buf);
    43 
    44 
    45         System.out.print(a+"
     "+ip);
    46 
    47         //System.out.println(new String(buf,0,a)+" "+ip);
    48     }
    49 }

    Client

     1 import java.io.*;
     2 import java.net.*;
     3 
     4 class Client{
     5     public static void main(String [] args) throws IOException{
     6         //创建客户端的socket服务。指定目的主机和端口
     7         Socket s = new Socket("127.0.0.1",10009);
     8 
     9         //为了发送数据,应该获取socket流中的输出流
    10         OutputStream out = s.getOutputStream();
    11 
    12         //将信息转换成字节形式虽网络流发送出去
    13         out.write("tcp ge men lai le".getBytes());
    14         //关闭网络流socket
    15         s.close();
    16 
    17     }
    18 }

    运行结果

     

  • 相关阅读:
    Delphi 2009 泛型容器单元(Generics.Collections)[5]: TObject...<T> 系列
    Delphi 2009 中 TStrings 与 TStream 的增强
    Delphi 2009 泛型容器单元(Generics.Collections)[4]: TDictionary<T>
    Delphi 2009 泛型容器单元(Generics.Collections)[1]: TList<T>
    Delphi 2009 中 string 与 Char 的改变
    Delphi 2009 的反射单元(ObjAuto):
    Delphi 2009 泛型容器单元(Generics.Collections)[3]: TStack<T>
    博客园电子期刊2010年4月刊发布啦
    上周热点回顾(5.105.16)
    上周热点回顾(4.265.2)
  • 原文地址:https://www.cnblogs.com/xiaoyuzhou55/p/9959272.html
Copyright © 2020-2023  润新知