Programming实验报告
一、 实验题目
利用套接字编程,编写出TCP和UDP的客户机/服务器程序进行交互。
二、 实验内容
1. 一台客户机从其标准输入(键盘)读取一行字符,并通过其套接字将该行发送到服务器。
2. 服务器从其连接套接字读取一行字符。
3. 服务器将该行字符转换成大写。
4. 服务器将修改后的行通过其连接套接字再发回给客户机。
5. 客户机从其套接字中读取修改后的行,然后将该行在其标准输出(监视器)上打印出来。
三、 代码及运行结果
1. TCP
书上提供的代码:
package TCP;
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket=new ServerSocket(6789);//服务端套接字欢迎套接字第一次
while(true) { //连接成功
Socket connectionSocket=welcomeSocket.accept();//连接套接字
BufferedReader inFromClient=new BufferedReader(//从套接字读
new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient=new DataOutputStream(//写到客户端
connectionSocket.getOutputStream());
clientSentence=inFromClient.readLine();
capitalizedSentence=clientSentence.toUpperCase()+'\n';//变成大写
outToClient.writeBytes(capitalizedSentence);//返回给客户端
}
}
}
package TCP;
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser=new BufferedReader(//键盘输入
new InputStreamReader(System.in));
Socket clientSocket=new Socket(InetAddress.getLocalHost(),6789);//套接字建立时主机地址
DataOutputStream outToServer=new DataOutputStream(
clientSocket.getOutputStream());//服务器发的内容
BufferedReader inFromServer=new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));//