程序员

Socket和ServerSocket基本用法(建立网络通讯)

作者:admin 2021-08-12 我要评论

serverMain package com . cy . java . net ; import java . io . IOException ; import java . net . ServerSocket ; import java . net . Socket ; public cla...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

serverMain

package com.cy.java.net;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class serverMain {
    public static void main(String[] args) throws IOException {
    	//开启监听,设置监听端口号9999
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("开启监听");
        
        while (true){ //不断等待客户的连接
        	//接受到客户端请求时会向下执行
            Socket accept = serverSocket.accept();
            System.out.println("监听到client");
            
            //通过流读取客户端发来的请求
            ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream());
            System.out.println("client say:"+objectInputStream.readUTF());
        }
    }
}

TCP服务器端依次调用socket()、bind()、listen()之后,就会监听指定的socket地址了。

TCP服务器监听到请求之后,就会调用accept()函数取接收请求,这样连接就建立好了。之后就可以开始网络I/O操作了,即类同于普通文件的读写I/O操作。

clientMain

package com.cy.java.net;


import java.io.IOException;
import java.net.Socket;

public class client {
    public static void main(String[] args) throws IOException {
    	//与端口为9999,ip为127.0.0.1(本地)的服务器建立连接
        Socket socket = new Socket("127.0.0.1", 9999);
		
		//通过写入流对服务端传输数据
		ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
        objectOutputStream.writeUTF("hello server");

		objectOutputStream.flush();
        objectOutputStream.close();
    }
}

TCP客户端依次调用socket()、connect()之后就向TCP服务器发送了一个连接请求。

开启服务器后,执行两次客户端请求,执行结果如下:
在这里插入图片描述

;原文链接:https://blog.csdn.net/weixin_53601359/article/details/115860462

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 十月更新修复了Windows 10的Ping of De

    十月更新修复了Windows 10的Ping of De

  • Windows10 UAC弹窗太烦但又不能关?教

    Windows10 UAC弹窗太烦但又不能关?教

  • 老大手把手教我玩 Git 变基!

    老大手把手教我玩 Git 变基!

  • 在Linux终端中展示幻灯片

    在Linux终端中展示幻灯片

腾讯云代理商
海外云服务器