当前位置:文档之家› 计算机网络试验2

计算机网络试验2

new DataOutputStream(
clientSocket.getOutputStream());
BufferedReader infromServer =
new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
clientSocket.close();
}
}
TCPSever端程序
importjava.io.*;
.*;
classTCPServer{
publicstaticvoidmain(String argv[])throwsException
{
String ClientSentence;
System.out.println("FROM SERVER:"+ modifiedSentence);
clientSocket.close();
}
}
客户端程序和服务器程序要注意端口号一致,客户机用计算机名获得IP地址。
运行效果:
TCPClient端的程序
import java.io.*;
import .*;
public class TCPClient
{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
sendData = sentence.getBytes();
DatagramPacket sendPacket =
newDatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
{
DatagramSocket serverSocket =newDatagramSocket(9876);
byte[] receiveData =newbyte[1024];
byte[] sendData =newbyte[1024];
while(true)
{
DatagramPacket receivePacket =
BufferedReader infromUser =
new BufferedReader(
new InputStreamReader(System.in));
Socket clientSocket = new Socket("59.67.146.124",6789);
DataOutputStream outToServer =
DatagramPacket receivePacket =
newDatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence =
newString(receivePacket.getData());
newDatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
}
}
}
UDPClient
importjava.io.*;
.*;
classUDPClient {
Socket clientSocket = new Socket("59.67.146.124",6789);使用计算机名和客户机ip均可。
运行效果:
UDPServer
importjava.io.*;
.*;
classUDPServer {
publicstaticvoidmain(String args[])throwsException
a)利用Java或C++语言,分别基于TCP和UDP编写一个简单的Client/Server网络应用程序。要求实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户。
b)修改上述程序,实现服务器根据客户请求,将服务器端指定的文件可靠地传输给客户。如果服务器没有指定的文件,服务器将给客户返回一个信息,通知客户其请求文件不存在。
熟悉和掌握socket编程的基本理论和方法。掌握基于TCP和UDP的工作原理以及Socket编程的一般方法,能够编写简单的网络应用程序。
实验要求:
请在以下题目中选择一个,按照要求完成实验,并完成实验报告。实验不分组。编程可以使用任何高级语言,建议使用java或C++。
也可以自拟题目。
试验过程:
1、实验内容:
publicstaticvoidmain(String args[])throwsException
{
BufferedReader inFromUser =
newBufferedReader(newInputStreamReader(System.in));
DatagramSocket clientSocket =newDatagramSocket();
intport = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
ClientSentence = infromClient. readLine();
capitalizedSentence =
ClientSentence.toUpperCase() +'\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
编程中注意客户程序和服务器程序端口号要相同。客户程序中的
c)有条件的同学可以进一步改进b)的程序,使之更实用。比如可以请求服务器先传输目录,然后客户根据目录请求传输文件等。
2、实验方式:每位同学上机编程实验,实验指导教师现场指导。程序可参考附录的程序1、程序2、程序3和程序4(程序中有错误需完善)
3、实验报告:在实验报告中要说明Socket编程的客户端和服务器端主要步骤、利用Java语言用到的主要类及其主要作用、TCP和UDP编程的主要差异和特点、你所实现的文件传输的程序代码、实验过程和实验结果。
newDatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence =newString(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
天津理工大学实验报告
学院(系)名称:计算机与通信工程学院
姓名
刘新伟
学号
20081972
专业
计算机科学与技术
班级
2008级4班
实验项目
试验二:基于TCP/UDP的Socket编程
课程名称
计算机网络原理
课程代码
0660086
实验时间
2010年12月14日
实验地点
7-219
批改意见
成绩
教师签字:
实验目的:
String capitalizedSentence;
ServerSocket welcomeSocket =newServerSocket(6789);
while(true){
Socket connectionSocket = welcomeSocket.accept();
BufferedReader infromClient =
sentence = infromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = infromServer.readLine();
System.out.println("FROM SERVER:"+modifiedSentence);
newBufferedReader(newInputStreamReader(
connectionSocket. getInputStream()));
DataOutputStream outTห้องสมุดไป่ตู้Client =
newDataOutputStream(
connectionSocket.getOutputStream());
InetAddress IPAddress = InetAddress.getByName("user132");
byte[] sendData =newbyte[1024];
byte[] receiveData =newbyte[1024];
String sentence = inFromUser.readLine();
相关主题