16.1有名端口
Tomcat:8080
Mysql:3306
Oracle:1521
Sqlserver:1433
16.2文字传输
1.编写一个服务器端, 和一个客户端
2.服务器端在 9999端口监听
3.客户端连接到服务器端,发送 “hello, server” , 然后退出
4.服务器端接收到 客户端发送的 信息,输出,并退出
ServerSocket serverSocket = new ServerSocket(9999);
//监听,如果没有客户端连接,服务器阻塞...
System.out.println("服务器在 9999端口监听,等待连接");
Socket socket = serverSocket.accept();
//获取该socket的输入流
InputStream inputStream = socket.getInputStream();//运行类型 SocketInputStream
byte[] buffer = new byte[1024];
int len = 0;
while((len = inputStream.read(buffer)) != -1) {
System.out.println("服务端:收到客户端信息 " + new String(buffer, 0, len));
}
inputStream.close();
socket.close();
serverSocket.close();
public class Client01 {
public static void main(String[] args) throws Exception {
//客户端,连接服务器的 9999端口
Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
//得到输出流, 字节流
//outputStream 运行类型 是 SocketOutputStream
OutputStream outputStream = socket.getOutputStream();
outputStream.write("hello, server~".getBytes());
outputStream.close();
socket.close();
}
}
16.3图片传输
1.编写一个服务器端, 和一个客户端
2.服务器端在 9999端口监听
3.客户端连接到服务器端,发送 一张图片
4.服务器端接收到 客户端发送的 图片,保存到 src下, 发送 “收到” 再退出
5.客户端接收到服务器端发送的 “收到”, 再退出
public class Client04 {
public static void main(String[] args) throws Exception {
//客户端,连接服务器的 9999端口
Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
//得到文件的输入字节流
BufferedInputStream fileBufferedInputStream =
new BufferedInputStream(new FileInputStream("d:\a.jpg"));
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len = fileBufferedInputStream.read(buffer)) != -1) {
//读取部分,就写入到 SocketOutputStrem
outputStream.write(buffer, 0, len);
}
socket.shutdownOutput();
//收到服务器
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String res = bufferedReader.readLine();
System.out.println("客户端: 收到服务器的消息 " + res);
//关闭
fileBufferedInputStream.close();
outputStream.close();
socket.close();
}
}
public class Server04 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//服务端在 9999端口监听,等待客户端连接.
ServerSocket serverSocket = new ServerSocket(9999);
//监听,如果没有客户端连接,服务器阻塞...
System.out.println("服务器在 9999端口监听,等待连接");
Socket socket = serverSocket.accept();
//先获取 SocketInputStream
InputStream inputStream = socket.getInputStream();
BufferedOutputStream fileBufferedOutputStream = new BufferedOutputStream(new FileOutputStream("src\myimage.jpg"));
byte[] buffer = new byte[1024];
int len = 0;
while( (len = inputStream.read(buffer)) != -1) {
//边读边写
fileBufferedOutputStream.write(buffer, 0, len);
}
//给客户端回复 "收到"
OutputStream outputStream = socket.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
bufferedWriter.write("哥们,收到~");
bufferedWriter.newLine();
bufferedWriter.flush();
inputStream.close();
fileBufferedOutputStream.close();
socket.close();
serverSocket.close();
System.out.println("完成,ok~");
}
}