Socket网络通信之数据传递

Socket通信的步骤:
  1.创建ServerSocket和Socket
  2.打开连接到Socket的输入/输出流
  3.按照协议对Socket进行读/写操作
  4.关闭输入输出流、关闭Socket
服务器端:
  1.创建ServerSocket对象,绑定监听端口
  2.通过accept()方法监听客户端请求
  3.连接建立后,通过输入流读取客户端发送的请求信息
  4.通过输出流向客户端发送相应的信息
  5.关闭相关资源
客户端:
  1.创建Socket对象,指明需要连接的服务器的地址和端口号
  2.连接建立后,通过输出流想服务器端发送请求信息
  3.通过输入流获取服务器响应的信息
  4.关闭响应资源 

1.Server服务器

 

复制代码
import java.io.*;
import java.net.*;

  public class TestServer {
      public static void main(String args[]) {   
          ServerSocket s = null;  
          try {         
              s = new ServerSocket(8888);  //建立服务器ServerSocket
              } catch (IOException e) {  }  
          while (true) {        
              try {
                  Socket s1 = s.accept();  //通过accept()方法监听客户端请求

                  OutputStream os = s1.getOutputStream();  //输出流
                  DataOutputStream dos = new DataOutputStream(os);   
                  dos.writeUTF("Hello,I am Socket!  bye bye!");  //传递信息,一句话
                  dos.close();
                  s1.close();       
                  } catch (IOException e) {}  
              }   
          } 
}
复制代码

2.Client客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.io.*;
import java.net.* ;
 
    public class TestClient {
        public static void main(String args[]) { 
            try
                Socket s1 = new Socket("127.0.0.1", 8888);  //创建Socket,IP及端口号
                InputStream is = s1.getInputStream(); //输入流
                DataInputStream dis = new DataInputStream(is); 
                System.out.println(dis.readUTF());   //打印传输的信息
                dis.close();  
                s1.close(); 
                } catch (ConnectException connExc) {
                    System.err.println("服务器连接失败!");
                    } catch (IOException e) {   }  
            }
    }

首先运行TestServer,再运行TestClient ,就会在控制台打印出:Hello,I am Socket! bye bye!

 

posted @   怡安  阅读(4423)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示