java网络编程 Socket 用法举例



Java Socket 用法:

package zrj.java.net.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MySocketTest {
    
    Socket socke = new Socket();
    
    public void setSocke() throws SocketException{
        // 如果 socket 的 InputStream 中
        socke.setSoTimeout(5*1000) ;
    }
    
    public static final int PROT = 13;
    public static void main(String[] args) {
//        if(args.length != 1){
//            System.out.println("地址无效");
//            return ;
//        }
        String hostName = "";
        try {
            InetAddress inetAddress = InetAddress.getLocalHost();
            System.out.println(inetAddress.toString());
            Socket socket = new Socket(inetAddress, PROT); // 创建 套接字
            socket.setSoTimeout(2000);
            System.out.println("连接服务器成功");
            BufferedReader bufreader = new BufferedReader( new InputStreamReader(socket.getInputStream()));
            System.out.println("Reads" + bufreader.readLine().toString());
            socket.close();
            
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            System.out.println("Can not Connection" + e);
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Error" + e);
        }
    }

}

Java SockeServert用法:

package zrj.java.net.socket;

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

public class MyServerSocket {
	
	Socket socket = null;
	public static final int PORT = 13;
	ServerSocket server;
	public MyServerSocket() {
		try {
			/*
			 * 1:此构造函数的端口号如果指定为 0 则使用任意的 空闲的端口号 但是客户端不能访问服务
			 * 2:默认情况下队列的大小设置  50 个套接字连接
			 * 3:如果端口被绑定, 或者a
			 */
			server = new ServerSocket(PORT);
			System.out.println("服务器IP为" +server.getInetAddress()+"\n服务器启动等待连接\n");
			while(true){
				socket = server.accept();
				System.out.println("客服端IP为"+ socket.getInetAddress().toString());
				//建立输出流
				OutputStream out = socket.getOutputStream();
				//打印流
				PrintWriter pout = new PrintWriter(out);
				//Thread.sleep(5000);
				pout.print(new java.util.Date());
				pout.flush();
				out.close();
				socket.close();
			}
		} catch (IOException e) { // 
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		new MyServerSocket();
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值