您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第三季学习笔记-网络编程TCP协议
发布时间:2017-08-10 16:06:24编辑:雪饮阅读()
实现服务器端与客户端程序
• 客户端:
• public class Socket extends Object
• 此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。
• Socket(String host, int port)
创建一个流套接字并将其连接到指定主机上的指定端口号。
• InputStream getInputStream()
返回此套接字的输入流。
• OutputStream getOutputStream()
返回此套接字的输出流。
• void setSoTimeout(int timeout)
启用/禁用带有指定超时值的
• SO_TIMEOUT,以毫秒为单位。
代码示例:
服务端:
package com.vince.socket;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
public static void main(String[] args) {
try {
//创建一个服务器端的Socket
ServerSocket server = new ServerSocket(8889);
System.out.println("服务器已启动,正在等待连接");
//等待客户端连接,会阻塞,如果有客户端连接就会产生一个socket对象
Socket s=server.accept();
String info="亲,您的宝贝已发出,请注意查收!\n";
//将向socket输出的字节流构造为字符流
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(info);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
package com.vince.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientDemo {
public static void main(String[] args) {
//创建一个客户端的socket对象(ip/主机名,端口号)
Socket s;
try {
s = new Socket("192.168.1.121",8889);
System.out.println("与服务器连接成功");
//构造一个字符输入流
BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
关键字词:javase,网络编程TCP协议