//创建对象的时候就会创建连接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);