博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java网络编程客户端和服务器通信
阅读量:5014 次
发布时间:2019-06-12

本文共 3866 字,大约阅读时间需要 12 分钟。

在java网络编程中,客户端和服务器的通信例子:

先来服务器监听的代码

package com.server;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.net.ServerSocket;import java.net.Socket;import com.jim.Student;public class QQServer {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        System.out.println("Start Server...");        QQServer server = new QQServer();    }    //构造函数    public QQServer()    {         Socket s;        //创建ServerSocket在9999号端口监听         ServerSocket ss = null;         try {            ss = new ServerSocket(9999);                    } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println("服务器正在监听........");            try {                System.out.println("开始等待连接...");                s = ss.accept();//阻塞,等待连接                System.out.println("客户端连接成功");                                //接收流                ObjectInputStream ois=new ObjectInputStream(s.getInputStream());                                //发送流                ObjectOutputStream oos = new ObjectOutputStream(                        s.getOutputStream());                                    //接收Student对象                Student stu = (Student) ois.readObject();                System.out.println(stu.getName());                //发送Student对象                oos.writeObject(new Student("Server"));                            } catch (Exception e) {                // TODO Auto-generated catch block                e.printStackTrace();            }         }        }

客户端的代码:

package com.client;import java.io.*;import java.net.*;import com.jim.Student;public class QQClient {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        System.out.println("Start QQClient...");        try {            QQClient client = new QQClient();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }        //构造函数    public QQClient() throws IOException    {        //String address="127.0.0.1";        //int port = 9999 ;        try {            Socket s = new Socket("127.0.0.1", 9999);            Student stu = new Student("Jim");            //发送信息给服务器            ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());                                    //ObjectInputStream ois=new ObjectInputStream(s.getInputStream());            //接受服务器传来的信息            ObjectInputStream ois=new ObjectInputStream(s.getInputStream());                        //发送对象到服务器            //oos.writeObject(new Student("OKK"));            oos.writeObject(stu);                        //接收服务器返回的对象            Student re_stu = (Student)ois.readObject();            System.out.println(re_stu.getName());                                } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }            }}

在客户端和服务传输的对象对象

package com.jim;public class Student implements java.io.Serializable{        private String name ;    private int age;    private String address;        public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }        /**     * @param name     * 构造方法     */    public Student(String name){        this.name = name;    }        /**     * @param      *      */    public void study(){        System.out.println(this.name + " is studing");    }    }

 

转载于:https://www.cnblogs.com/Jims2016/p/7667930.html

你可能感兴趣的文章
Cookie&Session会话跟踪技术
查看>>
UNIX环境高级编程 第17章 高级进程间通信
查看>>
ES的Zen发现机制
查看>>
【hibernate】1、Hibernate的一个注解 @Transient
查看>>
HihoCoder 1877 - Approximate Matching
查看>>
Elastic Search 语法总结
查看>>
py自动化之环境配置
查看>>
Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)
查看>>
红黑树-想说爱你不容易
查看>>
【题目】英文字符进行频率的统计,直方图输出
查看>>
LeetCode-Binary Tree Level Order Traversal
查看>>
COM组件开发实践
查看>>
yii2 源码分析1从入口开始
查看>>
浅谈网站推广
查看>>
Away3D基础之摄像机
查看>>
Leetcode 128. Longest Consecutive Sequence
查看>>
程序员必须知道的几个Git代码托管平台
查看>>
导电塑料入梦来
查看>>
C# 线程手册 第五章 扩展多线程应用程序 - 什么是线程池
查看>>
笔记1126ASP.NET面试题(转)
查看>>