在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");
} }

Java网络编程客户端和服务器通信的更多相关文章

  1. Java网络编程(客户端和服务端原理)

    运行下面的程序,浏览器端输入自己主机的IP地址+端口号(8888),会看到服务器返回的数据内容,Eclipse控制台会打印显示收到的信息, 通过我们自定义的服务器,可以看到浏览器端向服务器发送的请求信 ...

  2. java网络编程客户端与服务端原理以及用URL解析HTTP协议

    常见客户端与服务端 客户端: 浏览器:IE 服务端: 服务器:web服务器(Tomcat),存储服务器,数据库服务器. (注:会用到Tomact服务器,在webapps下有一个自己创建的目录myweb ...

  3. Java网络编程UDP通信原理

    前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信   TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...

  4. Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socke ...

  5. Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制

    Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...

  6. Java网络编程:QQ邮件发送客户端程序设计

    目录 一.目标介绍 1.认识SMTP(邮件传输协议) 2.POP3(邮件接收协议) 二.基于Base64编码邮箱及授权码 1.开通QQ邮箱SMTP/POP3服务 2.Java编写BASE64编码程序 ...

  7. 网络编程 --- URLConnection --- 读取服务器的数据 --- java

    使用URLConnection类获取服务器的数据 抽象类URLConnection表示一个指向指定URL资源的活动连接,它是java协议处理器机制的一部分. URL对象的openConnection( ...

  8. Java 网络编程学习总结

    新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1]    网络编程认识                [2]  TCP/IP编程 ...

  9. java 网络编程复习(转)

    好久没有看过Java网络编程了,现在刚好公司有机会接触,顺便的拾起以前的东西 参照原博客:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942 ...

随机推荐

  1. JAXB 专题二(BSP接口实战)

    BSP下单接口 1.xml格式如下 <?xml version="1.0" encoding="utf-8"?> <Request servi ...

  2. Internet Explorer 无法打开该 Internet 站点,请求的站点不可用或无法找到

    笔者最近遇见一个神奇的问题,同事在开发时用的谷歌浏览器,实现了一个下载功能,测试也没问题:但测试人员反馈说他那边没法下载,报异常.弹出框 同事跑过来和我商讨这个问题,笔者当时就懵了,于是赶紧查找相关资 ...

  3. mysql存储引擎简介

  4. java基础之JDBC七:C3P0连接池的使用

    使用C3P0的前提是需要引入jar包 具体使用如下: /** * c3p0的应用 * 前提:引入c3p0的jar包 */ public class Test { public static void ...

  5. if else的执行流程

    int main(void) { int a, b; char op; float ans; scanf_s("%d%c%d",&a,&op,1,&b); ...

  6. jQuery基础教程-第8章-004完整代码

    1. /****************************************************************************** Our plugin code c ...

  7. jdbc中Statement和PreparedStatement有什么区别?哪个性能更好?

    Statement和PreparedStatement的功能主要是对sql语句的执行 区别 (1)Statement每执行一条sql语句就需要生成一条执行计划,执行100条就需要100条执行计划Pre ...

  8. win32多线程 (一) 线程创建与结束等待

    #include "stdafx.h"#include <Windows.h>#include <iostream> using namespace std ...

  9. csv、txt读写及模式介绍

    1读写模式 r以读方式打开文件,可读取文件信息 w已写方式打开文件,可向文件写入信息.如文件存在,则清空,再写入 a以追加模式打开文件,打开文件可指针移至末尾,文件不存在则创建 r+以读写方式打开文件 ...

  10. linux下安装sz/rz命令

    参考 https://blog.csdn.net/kobejayandy/article/details/13291655