java网络编程,简单的客户端和服务器端

摘要:
=null){writer.close();}如果(客户端!

1.服务器端

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class HelloWorldServer {
    
    public static void main(String[] args) {
        ServerSocket server = null;
        BufferedReader reader = null;
        Socket client = null;
        try {
            server = new ServerSocket(9000);//创建ServerSocket对象,并绑定端口
            client = server.accept();//调用accept方法,等待客户端的连接
            InputStream in = client.getInputStream();
            reader = new BufferedReader(new InputStreamReader(in));
            String str = reader.readLine();
            System.out.println(str);
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try{
                if(client!=null){
                    client.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}

2.客户端

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class HelloWorldClient {
    
    public static void main(String[] args) {
        Socket client = null;
        PrintWriter writer = null;
        try {
            client = new Socket("www.feifeishi.cn", 9000);//www.feifeishi.cn是我的云服务器
            OutputStream out = client.getOutputStream();
            writer = new PrintWriter(out);
            Scanner sc=new Scanner(System.in);
            String aa=sc.nextLine();
            writer.print(aa);
            writer.flush();    
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try{
                if(writer!=null){
                    writer.close();
                }
                if(client!=null){
                    client.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}

3.运行

  将服务器端放到服务器上并运行

java网络编程,简单的客户端和服务器端第1张

运行服务器端

java网络编程,简单的客户端和服务器端第2张

正在等待客户端接入,然后本地运行客户端

java网络编程,简单的客户端和服务器端第3张

控制台输入你好,然后服务器端接收并显示你好

java网络编程,简单的客户端和服务器端第4张

4.拓展

TCP编程
   java.net.Socket
   java.net.ServerSocket
TCP编程的核心思路
   开发服务器端
   ServerSocket ss = new ServerSocket(9000)
   ss.accept();
   Socket s = new Socket("150.236.56.101", 9000)
java网络编程,简单的客户端和服务器端第5张
 

免责声明:文章转载自《java网络编程,简单的客户端和服务器端》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CSS图片垂直居中方法[转]oracle11g数据库导入导出方法教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

systemd 和 systemctl 使用深入理解

https://www.linuxidc.com/Linux/2018-08/153545.htm Linux系统的启动方式有点复杂,而且总是有需要优化的地方。传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣...

golang mgo的mongo连接池设置:必须手动加上maxPoolSize

本司礼物系统使用了golang的 mongo库 mgo,中间踩了一些坑,总结下避免大家再踩坑 golang的mgo库说明里是说明了开启连接复用的,但观察实验发现,这并没有根本实现连接的控制,连接复用仅在有空闲连接时生效,高并发时无可用连接会不断创建新连接,所以最终还是需要程序员自行去限制最大连接才行。 废话不多说,开始上代码 GlobalMgoSessi...

HP-Socket v3.2.2

==========================================================================================v3.2.2 upgrade :=========================================================================...

【移动开发】WIFI热点通信(二)

相信大家在上一篇中已经了解了Android中WIFI热点通信的相关操作知识(http://smallwoniu.blog.51cto.com/3911954/1536126),今天我们将在上一篇代码基础之上进行Socket编程,实现一个简单的多人聊天室功能,以达到热点网络上的通信目的。     首先,我们先来看一张最终效果图: <=======>...

linux下socket keep alive讲解

【需求】 不影响服务器处理的前提下,检测客户端程序是否被强制终了。【现状】服务器端和客户端的Socket都设定了keepalive属性。服务器端设定了探测次数等参数,客户端、服务器只是打开了keepalive机能服务器端起了一个监视线程,利用select来检测socket是否被关闭。。。 下面这是我的一点肤浅理解。 1.关于keep alive 无论win...

socket.io建立长连接

   socket.io是基于node.js,在命令行里输入npm socket.io下载模块,用node.js搭建后台 示例代码,客户端 1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 <head> 4 <meta charset="UTF-8"> 5...