预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JAVA套接字(Socket)编程分析 班级:11计科6班姓名:叶创建学号:201141402601 一、TCP套接字编程 功能:服务端启动后,客户端往服务端发送小写字母,服务端返回大写字母。 newSocket(); 创建套接字对象 客户端 服务端 程序框图: newSocketServer(); 创建套接字服务 建立连接 创建输出流newOutputStreamWriter(),从键盘录入字母 accept();获得Socke对象,并监听客户端 newBufferedReader()获得输入流 newBufferedReader) 获得输入流,打印字母 toUpperCase()转换为大写字母 if客户端发送OVER close()关闭套接字 newPrintWriter()创建输出流,输出大写字母 if客户端发送OVER close()关闭套接字 TCP服务端程序代码: classTransServer { publicstaticvoidmain(String[]args)throwsException { ServerSocketssk=newServerSocket(10001);//创建Socket服务 Socketsk=ssk.accept();//获取客户端Socket对象 Stringip=sk.getInetAddress().getHostAddress();//获取客户端IP System.out.println(ip+"isconnected..."); BufferedReaderbufIn= newBufferedReader(newInputStreamReader(sk.getInputStream()));//获得输入流对象 PrintWriterout=newPrintWriter(sk.getOutputStream(),true);//获得输出流对象 Stringline=null; while((line=bufIn.readLine())!=null) { System.out.println(line); out.println(line.toUpperCase());//转换成小写 } sk.close(); ssk.close(); } }TCP客户端程序代码: classTransClient { publicstaticvoidmain(String[]args)throwsException { Socketsk=newSocket("localhost",10001); BufferedReaderbufr= newBufferedReader(newInputStreamReader(System.in)); PrintWriterout=newPrintWriter(sk.getOutputStream(),true); BufferedReaderbufIn= newBufferedReader(newInputStreamReader(sk.getInputStream())); Stringline=null; while((line=bufr.readLine())!=null) { if("over".equals(line))//over结束对话 { break; } System.out.println(line); out.println(line); Stringstr=bufIn.readLine(); System.out.println("server:"+str); } bufr.close(); sk.close(); } } 运行效果: TCP套接字分析: 对于服务端ServerSocketssk=newServerSocket(10001);创建Socket服务,接收端口为10001,这个端口必须是唯一的,范围在0~65535之间. 客户端创建Socket服务,往服务端IP的10001端口发送数据;服务端调用ssk.accept();获取客户端的Socket对象,监听的端口为10001 获取客户端发送的数据,即输入流. 把字母转换后生成输出流,传回给客户端. 最好关闭套接字对象. 其中对于输入流和输出流,这些输入IO技术,因为传送的是字母,不是二进制文件,所以只需调用字符流对象即可. 服务端只有一个,而客户端有多个,每一个客户端连接服务端的时候,服务端都会获得一个