总结:
1) 建立Socket连接
2) 获得输入/输出流
3)读/写数据
4) 关闭输入/输出流
5) 关闭Socket
1. 编写一个网络应用程序,有客户端与服务器端,客户端向服务器端发送一个字符串,服务器收到该字符串后将其打印到命令行上,然后向客户端返回该字符串的长度,最后,客户端输出服务器端返回的该字符串的长度。
SockectServerTest
Java代码
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServerTest
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(9999);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
byte[] buffer = new byte[100];
int length = is.read(buffer);
String content = new String(buffer,0,length);
System.out.println("read from client:" + content);
int strLength = content.length();
String str = String.valueOf(strLength);
os.write(str.getBytes());
is.close();
os.close();
socket.close();
}
}
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServerTest
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(9999);
Socket socket = ss.accept();
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
byte[] buffer = new byte[100];
int length = is.read(buffer);
String content = new String(buffer,0,length);
System.out.println("read from client:" + content);
int strLength = content.length();
String str = String.valueOf(strLength);
os.write(str.getBytes());
is.close();
os.close();
socket.close();
}
}
ClientTest
Java代码
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ClientTest
{
public static void main(String[] args) throws Exception
{
Socket socket = new Socket("localhost",9999);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
String content = "This comes from client";
os.write(content.getBytes());
byte[] b = new byte[100];
int length = is.read(b);
String str = new String(b,0,length);
System.out.println("string's length:" + str);
is.close();
os.close();
socket.close();
}
}
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ClientTest
{
public static void main(String[] args) throws Exception
{
Socket socket = new Socket("localhost",9999);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
String content = "This comes from client";
os.write(content.getBytes());
byte[] b = new byte[100];
int length = is.read(b);
String str = new String(b,0,length);
System.out.println("string's length:" + str);
is.close();
os.close();
socket.close();
}
}
[java socket编程面试题]