客户端:

package demo03;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket; /*
* 实现TCP客户端,接收到服务器
* 和服务器实现数据交换
* 实现TCP客户端程序的类 java.net.Socket
*
* 构造方法:
* Socket(String host,int port) 传服务器IP和端口号
* 注意:构造方法只要运行,就会和服务器进行连接,连接失败,抛出异常
*
* OutputStream getOutputStream() 返回套接字的输出流
* 作用:将数据输出,输出到服务器
*
* InputStream getInputStream() 返回套接字的输入流
* 作用:从服务端读取数据
*
* 客户端服务器数据交换,必须使用套接字对象Socket中的获取的IO流,自己new流,不行
*/
public class TCPClient {
public static void main(String[] args) throws IOException{
//创建Socket对象,连接服务器
Socket socket=new Socket("127.0.0.1",8888);
//通过客户端的套接字对象Socket方法,获取字节输出流,将数据写向服务器
OutputStream out=socket.getOutputStream();
out.write("服务器你好!".getBytes()); //读取服务器发回的数据,使用socket套接字对象中的字节输入流
InputStream in=socket.getInputStream();
byte[] data=new byte[1024];
int len=in.read(data);
System.out.println(new String(data,0,len)); socket.close();
}
}

服务端:

package demo03;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; /*
* 实现TCP服务器程序
* 表示服务器程序的类 java.net.ServerSocket
* 构造方法:
* ServerSocket(int port) 传递端口号
*
* 很重要的事情:必须要获得客户端的套接字对象Socket
* Socket accept()
*/
public class TCPServer {
public static void main(String[] args)throws IOException {
ServerSocket server=new ServerSocket(8888);
//调用服务器套接字对象中的方法accept()获取客户端套接字对象
Socket socket=server.accept();
//通过客户端套接字对象,socket获取字节输入流,读取的是客户端发送来的数据
InputStream in=socket.getInputStream();
byte[] data=new byte[1024];
int len=in.read(data); System.out.println(new String(data,0,len)); //服务器向客户端回数据,字节输出流,通过客户端套接字对象获取字节输出流
OutputStream out=socket.getOutputStream();
out.write("收到,谢谢".getBytes()); socket.close();
server.close(); }
}

java 基于tcp客户端服务端发送接收数据的更多相关文章

  1. Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)

    一.实现功能 1.服务器端选择待发送的文件,可以是多个 2.开启服务器,支持多客户端接入,能够实时显示每个客户端接入状态 3.等待所有客户端都处于已连接状态时,依次发送文件集给每个客户端,显示每个客户 ...

  2. 网络编程--使用TCP协议发送接收数据

    package com.zhangxueliang.tcp; import java.io.IOException; import java.io.OutputStream; import java. ...

  3. [JAVA] 基于TCP的起重机运行模拟器

    1.客户端 package ClientMain; import java.io.DataInputStream; import java.io.DataOutputStream; import ja ...

  4. TCP移动端跟服务器数据交互

    同一台笔记本下的客户端和服务端 TCPClient 客户端: //  RootViewController.h#import <UIKit/UIKit.h>#import "As ...

  5. 网络编程--使用UDP发送接收数据

    package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...

  6. 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制

    安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程?  详细代码介 ...

  7. Java基于TCP的Socket编程练习

    环境:Notpad ++ 6.0 + JDK 6.0.31 问题:使用套接字编写客户-服务器程序,实现客户-服务器交互计算.客户将三角形3个边的长度发给服务器,服务器把计算出的三角形的面积返回给客户. ...

  8. TCP/IP Socket发送接收图片demo

    一个实例通过client端和server端通讯 客户端通过TCP/IP传输资源文件,比如图片,文字,音频,视频等..... 服务端接受到文件存入本地磁盘,返回接受到:“收到来自于"+s.ge ...

  9. JAVA 基于TCP协议的一对一,一对多文件传输实现

    最近老师给我们上了多线程和TCP和UDP协议,其中一个要求就是我们用JAVA协议一个基于TCP和UDP这两种协议的一对一文件上传和一对多文件上传. 然后我就开始分析TCP和UDP这两个协议的特点,发现 ...

随机推荐

  1. JZOJ 2499. 东风谷早苗

    2499. 东风谷早苗 (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits   Goto Pro ...

  2. CRM第一篇:权限组件之权限控制

    一.权限组件(1):一级菜单 二.权限组件(2):二级菜单 三.权限组件(3):默认选中非菜单(二级菜单) 四.权限组件(4):给动态菜单增加面包屑导航 五.权限组件(5):权限粒度控制到按钮 六.权 ...

  3. 解析XML格式数据

    学习解析XML格式的数据前,搭建一个简单的web服务器,在这个服务器上提供xml文本用于练习. 一.搭建Apache服务器 在Apache官网下载编译好的服务器程序,安装.对于Windows来说127 ...

  4. HDU 3966 Aragorn's Story 树链拋分

    一.写在前面 终于开始开坑link-cut-tree这个了,对于网上找到的大佬的前进路线,进行了一番研发,发现实际上可以实现对于树链拋分的制作.经历了若干长时间之后终于打了出来(为什么每次学什么东西都 ...

  5. 笔记-数据库-redis

    笔记-数据库-redis 1.      redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 stri ...

  6. "帮你"-用户模板和用户场景

    场景/故事/story 典型用户: 用户性质 典型用户介绍 姓名 小李 年龄 20岁 职业 学生 代表的用户在市场上的比例和重要性 代表学校内广大普通学生,因此有很大的重要性. 使用本软件的典型场景 ...

  7. cglib动态代理之原理说明

    cglib采用了非常底层的字节码技术,通过目标类的字节码,为目标类创建子类,并在子类中用方法拦截技术,拦截所有父类方法的调用,并对拦截方法进行增强. 1)底层采用字节码框架ASM,来转换字节码来生成新 ...

  8. 2 - JVM随笔分类(JVM堆的内存回收)

    JVM常用的回收算法是: 标记/清除算法 标记/复制算法 标记/整理算法 其中上诉三种算法都先具备,标记阶段,通过标记阶段,得到当前存活的对象,然后再将非标记的对象进行清除,而对象内存中对象的标记过程 ...

  9. 运维Python面试题

    本章内容 1 osodjfoskjdofjsdjfjsdf 123 sdfdfadf   1 2 3 4 5 6 from django.db import models     class user ...

  10. loj2052 「HNOI2016」矿区

    学习一发平面图的姿势--ref #include <algorithm> #include <iostream> #include <cstdio> #includ ...