java使用socket实现通信

十木禾 十木禾     2023-01-30     210

关键词:

客户端程序

package com.jun.client;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 * 〈客户端程序〉<br>
 *
 * @author 未绪
 * @time 2018/2/16 12:42
 */
public class Client 

    private Socket socket;

    public Client(String[] args) 
        try 
            socket = new Socket("localhost", 8080);
         catch (Exception e) 
            e.printStackTrace();
        
    

    public void connect() 

        try 
            OutputStream out = socket.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8");
            PrintWriter pw = new PrintWriter(osw, true);
            BufferedReader brc = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            Scanner scanner = new Scanner(System.in);
            while (true) 
                sendCmdAndGetResult(scanner,brc,pw);
            
         catch (Exception e) 
            e.printStackTrace();
         finally 
            if (socket != null) 
                try 
                    socket.close();
                 catch (Exception e) 
                    e.printStackTrace();
                
            
        
    

    /**
     * 向服务器发送数据并获得返回结果
     * @param scanner
     * @param brc
     * @param pw
     * @throws IOException
     */
    public void sendCmdAndGetResult(Scanner scanner,BufferedReader brc,PrintWriter pw) throws IOException 
        pw.println(scanner.nextLine());
        String result = brc.readLine();
        System.out.println(result);

    

    public static void main(String[] args) 

        Client client = new Client(args);
        client.connect();

    


服务器端程序

package com.jun.server;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;

/**
 * 〈服务器〉<br>
 *
 * @author 未绪
 * @time 2018/2/12 21:06
 */
public class ServerMain 

    private ServerSocket serverSocket;

    public static void main(String[] args) 
        ServerMain server= new ServerMain();
        server.connect();                   //等待连接客户端
    

    /**
     * 连接到客户端
     */
    public void connect()
        try
            serverSocket = new ServerSocket(8080);
            Socket socket = serverSocket.accept();//阻塞等待客户端的连接
            InputStream in = socket.getInputStream();
            InputStreamReader isr = new InputStreamReader(in, "UTF-8");
            BufferedReader br = new BufferedReader(isr);
            PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);
            Scanner scanner = new Scanner(System.in);
            while(true)        //读取客户端的数据
                readCmdAndReturnResult(br,pw,scanner);
            
         catch (UnsupportedEncodingException e) 
            e.printStackTrace();
         catch (IOException e) 
            e.printStackTrace();
        
    

    /**
     * 获取客户端传过来的数据并处理数据
     * @param br 缓冲流Reader
     * @param pw 向客户端写数据
     * @throws IOException
     */
    public void readCmdAndReturnResult(BufferedReader br,PrintWriter pw,Scanner scanner) throws IOException 
        String msg=br.readLine();           //读取客户端数据
        System.out.println(msg);
        pw.println(scanner.nextLine());

    


java通过serversocket与socket实现通信

...待状态.ServetSocket有三个构造方法:(1)ServerSocket(intport);这个使用指定的端口去创建ServerSocket,IP地址使用默认的本地IP地址.(2)ServetSocket(intport,intb 查看详情

java通过serversocket与socket实现通信

...待状态.ServetSocket有三个构造方法:(1)ServerSocket(intport);这个使用指定的端口去创建ServerSocket,IP地址使用默认的本地IP地址.(2)ServetSocket(intport,intb 查看详情

java实现tcp通信

...通过ServerSocket与Socket实现的TCP的通信,这个例子配合了swing使用,其实作者之前发过一篇ServerSocker与Socket的通信,在这里,这边文章就是在这个例子上修改而成的.其实原理很简单的,就是一个服务端一个客户端,服务端这边创建好ServerSoc... 查看详情

java的客户端用的是socket,服务器端用socketchannel,这两种能实现通信么?说得比较白,望理解

...塞连接.当然Socket也可以自己来实现非阻塞连接.一般来说使用SocketChannel会有更好的性能(Socket实际应该比SocketChannel更高效,不过一般使用到最后,由于使用者设计等原因,效率反而比直接使用SocketChannel低) 参考技术B一般使用socket跟Ser... 查看详情

java实现socket通信

一对一通信:服务器端:publicclassServerDemo{publicstaticvoidmain(String[]args){ServerSocketserverSocket=null;Socketsocket=null;BufferedReaderreader=null;try{//设置服务端的端口号serverSocket=newServerSocket(8081);//等待客户端发 查看详情

java实现简单的socket通信

  今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完善了。  今天代码花了整个晚上调试,主要原因是io的flush问题和命令行下如何运行具有package的类,不过最后问题基本都解决了,... 查看详情

c#使用socket实现一个socket服务器与多个socket客户端通信

...也可以通过数据存储任务,子节点来完成任务,但是往往使用数据作为任务存储都需要定制开发,要维护数据库中任务记录状态等等。开发的东西还是有点多,而且还不够灵活。因此,我个人是比较偏向于使用socket来实现任务的... 查看详情

java多线程实现多客户端socket通信

一、服务端packagecom.czhappy.hello.socket;importjava.io.IOException;importjava.net.InetAddress;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{publicstaticvoidmain(String[]args){//创建Ser 查看详情

java中socket实现最简单的客户端与服务端通信

Java中Socket实现最简单的客户端与服务端通信引言:因为最近项目中要接入某通信协议接口,基于TCP/IP的socket接口。于是就在本地弄一个最简单的Socket通信仅供学习。话不多说,直接开摆客户端代码packagetest;importjava.io.*;importjava.ne... 查看详情

java中socket网络通信,实现客户端上传文件案例(代码片段)

...:1.创建一个服务器ServerSocket对象,和系统要指定的端口号2.使用ServerSocket对象中的方法accept,获取到请求的客户端Socket对象3.使用Socket对象中的方法getInputStream,获取到网络字节输入流InputStream对象4.判断d:\\\\upload文件夹是否存在,不存... 查看详情

java中socket实现最简单的客户端与服务端通信(代码片段)

Java中Socket实现最简单的客户端与服务端通信引言:因为最近项目中要接入某通信协议接口,基于TCP/IP的socket接口。于是就在本地弄一个最简单的Socket通信仅供学习。话不多说,直接开摆客户端代码packagetest;importjava.io.*;importjava.ne... 查看详情

javasocket实战之六使用nio包实现socket通信(代码片段)

...传输对象JavaSocket实战之四传输压缩对象JavaSocket实战之五使用加密协议传输对象前面几篇文章介绍了使用java.io和java.net类库实现的Socket通信,下面介绍一下使用java.nio类库实现的Socket。java.nio包是Java在1.4之后增加的,用来... 查看详情

java网络编程-tcp通信(代码片段)

...连接中可进行大数据量的传输TCP通信模式:在java中只要是使用java.net.Socket类实现通信,底层即是使用了TCP协议编写客户端代码Socket(客户端):构造器说明Socket(Stringhost,intport)创建发送端的Socket对象与服务端连接,参数为服务... 查看详情

java系列讲座二:socket网络通信实现聊天软件项目讲解(udp)

...网络通信软件开发的原理,思路及实现,今天跟大家谈谈Socket通信中UDP方式通信的软件开发步骤及主要代码讲解,UDP实现方式实现的通信软件特点是不分客户端与服务器端,一个程序既是客户端与是服务器端,典型软件是一些局... 查看详情

java系列讲座二:socket网络通信实现聊天软件项目讲解(udp)

...网络通信软件开发的原理,思路及实现,今天跟大家谈谈Socket通信中UDP方式通信的软件开发步骤及主要代码讲解,UDP实现方式实现的通信软件特点是不分客户端与服务器端,一个程序既是客户端与是服务器端,典型软件是一些局... 查看详情

java:实现nio方式实现tcp通信

1.声明当前内容主要为复习使用Nio方式实现tcp通信,实现tcp之间的信号传递和解析2.Server端/****@authorhy*@createTime2022-02-1209:48:24*@description当前内容为使用Nio方式操作socket进行通信操作**/publicclassNioServerSocketTest publicstatic 查看详情

java进程间通信

...交换比较简单  除了Socket之外,当然首选的IPC可以使用RMI,或者CORBA也可以。其实JAVA的C 查看详情

java利用socket通信模拟实现arq停止等待协议

---恢复内容开始---1//服务端,发送方1//客户端,接收方23importjava.awt.*;4importjava.io.*;5importjava.net.*;6importjava.util.*;7importjavax.swing.*;89publicclassIClientextendsJFrame{10JPaneljp=newJPanel();11JTextAreajta=ne 查看详情