java网络编程之SOCKET

客户端Socket

//创建对象的时候就会创建连接
try(Socket socket = new Socket("time.nist.gov",13)){
    //读取数据
}catch(IOEception ex){
    //异常
}
//可选的
socket.setSoTimeout(150000);

//从socket中读取数据
InputStream in = socket.getInputStream();
StringBuilder time = new StringBuilder();
//reader的编码格式可变
InputStreamReader reader = new InputStreamReader(in, "ASCII");
for (int c = reader.read();c!=-1;c=reader.read()){
    time.appent((char)c);
}

//获取输出流,并写入命令
Writer writer = new OutputStreamWriter(socket.getOutputStream(),"UTF-8");
writer.write("DEFINE eng-lat gold\r\n");
writer.flush();

//半关闭socket(相对于close)
//只是关闭了流,并没有关闭socket
shutdownInput()
shutdownOutput()

//构造但不连接
Socket socket = new Socket()
//以抽象类创建
SocketAddress address = new InetSocketAddress("time.nist.gov",13);
//连接,可以传入第二个参数,为超时之前等待的时间
socket.connetct(address);


//得到SocketAddress 的方法
getRemoteSocketAddress()
getLocalSocketAddress() 

//代理服务器连接
SocketAddress proxyAddress = new InetSocketAddress("example.com",1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, proxyAddress);
Socket s = new Socket(proxy);

服务器Socket

//服务器创建Socket
ServerSocket server = new ServerSocket(13);
//接受一个连接,阻塞状态
Socket connection = server.accept();
OutputStream out = connection.getOutputStream();
Writer writer = new OutputStreamWriter(writer,"ASCII");
Date now = new Date();
//使用/r/n来结束
out.writer(now.toString()+"\r\n")

//使用bind()来绑定一个Socket地址
ServerSocket server = new ServerSocket();
SocketAddress address = new InetSocketAddress(port);
server.bind(address);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值