好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于TCP协议的Socket编程.doc

7页
  • 卖家[上传人]:ss****gk
  • 文档编号:208959303
  • 上传时间:2021-11-08
  • 文档格式:DOC
  • 文档大小:124.37KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Java语言程序设计实验报告实验!实验题目:基于TCP协议的Socket编程指导老师:贺玉珍专业班级:计算机科学与技术系网络工程方向1002班 姓 名:任华瑞(2010100241)2013年5月10曰实验类型验证性实验室软件实验室三一、 实验目的:1. 掌握Java中的有关网络编程的相关类2. 练习使用这些类进行基于TCP协议的Socket网络编程二、 实验内容:分别编写一个客户端程序和一个服务端程序,两个程序能够实现通讯三、实验代码:1.客户端界面代码(ClientFrame. java):import java, awt- import java. net. *; import java. awt. event•氺;public class ClientFrame { private Frame f; private TextField tf; private Button but; private TextArea ta;ClientFrame () {init0 ;public TextArea getTextAreaO { return this, ta;public void init () {f = new Frame (〃客户端"); f. setBounds(300, 100, 400, 300); f.setLayout(new FlowLayout()); tf = new TextField(40);but = new Button ("发送z/);ta = new TextArea (25, 50);f. add (tf);f. add (but);f. add (ta);myEvent ();f- setVisible(true);private void myEvent() {f. addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvcnt c) {System, exit (0);}});but. addActionListcncr(now ActionListcncr () {public void actionPerformed(ActionEvent c) {//ta. setText (tf. getText ());try {DatagramSocket ds 二 new DatagramSockct ();byte[] buf = tf. getText (). getBytes();DatagramPacket dp = new DatagramPacket (buf, buf. length,InetAddress. getByName(〃127. 0. 0. 1〃),10001); ds. send (dp);ta. append ("客广端说::〃+tf. getText ()+"\r\rT); tf. setText ;} catch (Exception ex) { ex. toStringO ;} finally {// ds. closeO ;});} 2.服务端界面代码(ServerFrame. java):import java, net- DatagramPacket; import java. net. DatagramSocket; import java. net. SocketException;public class ServerFrame { private Frame f; private TextField tf; private Button but;private TcxtArca ta;private DatagramSocket dsl;ServerFrameO {init ();}public TextArea getTextAreaO { return this, ta;}public TcxtField getTextFieldO { return this, tf;public void init () {f = new Frame (〃服务端"); f.setBounds(300, 100, 400, 300); f- setLayout(new FlowLayout()); tf = new TextField(40);but = new Button C发送");ta = new TextArea(25, 50);f. add(tf);f. add (but);f. add (ta);myEvent ();f.setVisible (true);private void myEvent() {f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System, exit (0);}});but. addActionListener(new ActionListener () { public void actionPcrformcd(ActionEvcnt e)try {dsl = new DatagramSocket();byte[] buf 1 = tf. getText (). getBytcs();DatagramPacket dpi = new DatagramPacket(buf1,buf1. length, InetAddress. getByNameCl27. 0. 0. 1"), 10002);dsl. send (dpi);ta. append (〃服务端说::〃+tf. getText () +〃\r\n〃);tf. setText (〃〃);} catch (Exception ex) { ex. toStringO ;});}}3. 服务端代码(UdpRece2 . java):import java. net. *;public class UdpRece2 {public static void main(String[] args) throws Exception { final ServerFrame frame = new ServerFrameO; new Thread(new Runnable () {@0verri depublic void run() {// TODO Auto-generated method stub try {DatagramSocket ds = new DatagramSocket(10001); while (true) {byte[] buf = new byte[1024];DatagramPacket dp 二 new DatagramPacket (buf,buf. length);ds. receive (dp);String ip = dp. gctAddrcss(). gctHostAddrcss (); String data = new String (dp. gctDataO, 0,dp• getLengthO);frame. getTextAreaO. append (〃客户端好友说:"+data+〃\r\n〃);}} catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace ();}) • start ();4. 客户端代码(UdpSend2 • java):import .*;import java. net. SocketException;public class UdpSend2 {public static void main(String[] args) throws Exception {final ClientFrame frame = new ClientErame();new Thread (new Runnable() {@0verri depublic void run() {// TODO Auto-generated method stub try {DatagramSocket dsl = new DatagramSocket (10002); while (true) {byte[] bufl = new byte[1024];DatagramPackct dpi = now DatagramPackot (bufl,bufl. length);dsl. receive (dpi);String ip 二 dpi. gctAddrcss(). getHostAddrcss(); String data = new String(dpl. gctDataO, 0,dpk getLengthO);frame. getTextAreaO. append(〃服务端好友说:"+data+〃\r\n〃);}} catch (Exception e) {// TODO Auto-generated catch block e. printStackTrace ();})• start (); Ui运行结果:1、运行UdSend2. java,出现的结果为:运行UdpRece2. java,出现的结果为r@客户端 L:□回 泛 1 巴?涮马吃 7D厅1去的 仰还下好亲识那识::友::友囊综户翼劳 客服五、实验总结:在这次实验中,我对Socket编程有了进一步的了解和掌握了。

      但是在实验中,我发现 向己在有些地方还是不太熟悉,希望自己在平时多加的练习和掌握。

      点击阅读更多内容
      猜您喜欢
      湖南省邵东县创新_高二语文上学期期末考试试题.doc 湖南省邵东县高三语文上学期第三次月考试题.doc 湖南省邵东县第学2019_2020学年高二语文上学期第三次月考试题.doc 幼儿教师资格证考试《保教知识与能力(幼儿园)》题库100题含答案(第63版).docx 过程参数及仪表课件 第7章 节流变压降流量计.ppt 基于SVN软件工程团队协作模式.doc 基于UVM的基带射频接口电路的验证.doc 湖南省邵东县第学2019 2020学年高一数学下学期第三次月考试题.doc 湖南省邵阳县石齐学校高一数学下学期第一次月考试题(无答案) 试题.doc 幼儿教师资格证考试《保教知识与能力(幼儿园)》题库100题含答案(第696版).docx 幼儿教师资格证考试《保教知识与能力(幼儿园)》题库100题含答案(第638版).docx 湖南省邵阳市届九年级物理上学期期末考试试题(无答案) 试题.doc 幼儿教师资格证考试《保教知识与能力(幼儿园)》题库100题含答案(第602版).docx 湖南省邵阳市2016年中考数学真题试题(含解析) 试题.doc 关于工商管理自我鉴定范文9篇(共16页).docx 关于工商管理自我鉴定范文合集5篇(共9页).docx 关于工商管理自我鉴定范文7篇(共13页).docx 湖南省邵阳七年级语文下学期期中考试试题(无答案) 人教新课标版 试题.doc 湖南省邵阳县 八年级语文下学期期中试题.doc 多指标决策分析TOPSIS对三七的质量评价研究.doc
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.