套接字编程实验报告 .doc
Programing 实验
物联2班 201208080228 赵智慧
实验题目:利用套接字编程,编写出TCP和UDP的客户机、 服务器程序进行交互
实验代码:
TCP服务器:
package TCP;
import java.io.BufferedReader; import java.io.lOException; import java.io.InputStreamReader; import jav a.net.Server Socket; impor t java.net.S ocket;
public class TCPSe rver {
public static void main(String [] args) thr ows lOExcept ion{
ServerSo cket server=new ServerSo cket(7999);
S ystem.out.pr intln(Hserve r ok");
Socke t socket=ser ver.accept();
BufferedRea der bf=new B ufferedReade r(new Inputs treamReader(socket.getln putStream()));
String str =bf.readLine (); while(str !=null)
{
Syst em.out.print In(str); str=bf.readLine();
}
}
}
TCP客户机:
package TCP;
import java.io.BufferedR eader; import java.io.Dat aOutputStrea m; import jav a.io.lOExcep tion;
import java.io.Inpu tStreamReade r;
import jav a.io.Outputs tream;
import java.io.Pri ntWriter;
imp ortjava.net .Socket;
impo rt java.net.UnknownHostE xception;
pub lie class TC PCIient {
pub lie static void main(Str ing[] args)throws Unkno wnHostExcept ion, lOExcep tion{
String sentence;
Inp utStreamRead er isr = new InputStream Reader(Syste m.in); Buffer edReader inF romUser = ne w BufferedRe ader(isr);
So cket clients ocket = new Socket("127.0.0.1",7999);
sentence =inFromUser.r eadLine();
OutputStre am os = die ntSocket.get OutputStream (); PrintWrit er oos=new P rintWriter(o s); os.write(sentence.get Bytes());
cli entSocket.cl ose();
}
}
UDP服务器:
package U DP;
import ja va.net.Datag ram Packet; im port java.ne t.DatagramSo cket; import java.net.Ine tAddress; imp ortjava.net .SocketExcep tion;
public class UDPSer ver { public static void main(String[] args) thro ws Exception {
DatagramSoc ket serverSo cket = new D atagramSocke t(9876);"戶斤
有发送和接收的数据都将通过该套接字
//因为UDP无连接,所以无需创建一个新的套接字监听新的请
byte[]receivel =new byte[102 4];
byte[] re ceive2 = new byte[1024]; byte[] sendl = new byte[1024]; byte[]send2 = new byte[1024]; byte[] send3 = new byte[1024];
while(true){
Datagr amPacket rec eivePacket =new Datagra mPacket(rece iv