java网络编程之SOCKET

来源:互联网 发布:linux安装qemu 编辑:程序博客网 时间:2024/06/05 14:54

客户端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)//只是关闭了流,并没有关闭socketshutdownInput()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

//服务器创建SocketServerSocket 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);
原创粉丝点击