Java 简单的Java Socket程序


//服务器端:ServerDemo.java

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo
{
public static void main(String[] args)
{
ServerSocket ss = null;
try {
ss = new ServerSocket(8888);
        //服务器接收到客户端的数据后,创建与此客户端对话的Socket
        Socket socket = ss.accept();
       
        //用于向客户端发送数据的输出流
        DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
       
        //用于接收客户端发来的数据的输入流
        DataInputStream dis = new DataInputStream(socket.getInputStream());
       
        System.out.println("服务器接收到客户端的连接请求:" + dis.readUTF());
       
        //服务器向客户端发送连接成功确认信息
        dos.writeUTF("接受连接请求,连接成功!");
       
        //不需要继续使用此连接时,关闭连接
        socket.close();
        ss.close();
} catch (IOException e){
  e.printStackTrace();
  }
  }
}

//客户端:ClientDemo.java

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientDemo {
  public static void main(String[] args)
  {
  Socket socket = null;
  try {
      socket = new Socket("localhost",8888);
           
            //获取输出流,用于客户端向服务器端发送数据
            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
           
            //获取输入流,用于接收服务器端发送来的数据
            DataInputStream dis = new DataInputStream(socket.getInputStream());
           
            //客户端向服务器端发送数据
            dos.writeUTF("我是客户端,请求连接!");
           
            //打印出从服务器端接收到的数据
            System.out.println(dis.readUTF());
           
            //不需要继续使用此连接时,记得关闭哦
            socket.close();
  } catch (UnknownHostException e)
      {
      e.printStackTrace();
      } catch (IOException e)
        {
      e.printStackTrace();
        }
  }
}

运行,开两个CMD窗口,分别运行:java ServerDemo和java ClientDemo

运行结果如下:

java ServerDemo

服务器接收到客户端的连接请求:我是客户端,请求连接!

java ClientDemo

接受连接请求,连接成功!

Linux Socket 编程I/O Mutiplexing poll 和 epoll 

Linux Socket 编程I/O Multiplexing

Socket网络编程-Mina 实例

Lua加入Socket库支持

Python编写的Socket服务器和客户端

本文永久更新链接地址:

相关内容