演示tcp的传输的客户端和服务端的互访。

需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息。

客户端:

1,建立socket服务。指定要连接主机和端口。

2,获取socket流中的输出流。将数据写到该流中。通过网络发送给服务端。

3,获取socket流中的输入流,将服务端反馈的数据获取到,并打印。

4,关闭客户端资源。

服务端:

1,建立服务端的socket服务。ServerSocket();并监听一个端口。

2,获取连接过来的客户端对象。通过ServerSokcet的 accept方法。没有连接就会等,所以这个方法阻塞式的。

3,客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流来读取发过来的数据。并打印在控制台。

4,获取socket流中的输出流。将数据写到该流中。通过网络发送给客户端。

5,关闭服务端。(可选)

代码如下:

客户端代码如下:

package com.package4;
/*
* author:ywq
*/
import java.net.*;
import java.io.*; public class TcpClient { public static void main(String[] args)throws Exception {
//创建客户端的socket服务。指定目的主机和端口
Socket s=new Socket("127.0.0.1",1456); //为了发送数据,应该获取socket流中的输出流。
OutputStream out=s.getOutputStream(); //发送数据
out.write("我是客户端,这是给你发的".getBytes()); //设置一个字节数组,用来存放收到的服务器反馈
byte[] buf=new byte[1024]; //得到socket中的输入流
InputStream in=s.getInputStream(); //将输入流写入到buf数组中
int len=in.read(buf); //创建字符串
String info=new String(buf,0,len); System.out.println(info); //关闭socket
s.close(); } }

服务器端代码如下:

package com.package4;

/*
* author:ywq
*/
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; public class TcpServer { public static void main(String[] args)throws Exception{ //创建服务器的socket,并且监听某个端口
ServerSocket ss=new ServerSocket(1456); while(true)
{
//利用accept方法来获取连接到的客户端对象
Socket s=ss.accept(); //得到并且打印客户端的ip
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip); //得到socket输入流
InputStream in=s.getInputStream(); //设置一个字节数组,用来存放收到的客户端数据
byte[] buf=new byte[1024]; //将输入流写入到buf数组中
int len=in.read(buf); String info=new String(buf,0,len); System.out.println(info); //为了发送数据,应该获取socket流中的输出流。
OutputStream out=s.getOutputStream();
//发送数据
out.write("我是服务器,这是给你的".getBytes()); s.close();
} } }

java网络编程—TCP(1)的更多相关文章

  1. java 网络编程-tcp/udp

    --转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...

  2. java网络编程(TCP详解)

    网络编程详解-TCP 一,TCP协议的特点              面向连接的协议(有发送端就一定要有接收端)    通过三次连接握手建立连接 通过四次握手断开连接 基于IO流传输数据 传输数据大小 ...

  3. java网络编程TCP传输—流操作—拿到源后的写入动作

    在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充···· 1.利用byte数组作为一个缓冲区进行读写 客户端上传 //获取socket ...

  4. Java分享笔记:Java网络编程--TCP程序设计

    [1] TCP编程的主要步骤 客户端(client): 1.创建Socket对象,构造方法的形参列表中需要InetAddress类对象和int型值,用来指明对方的IP地址和端口号. 2.通过Socke ...

  5. Java网络编程(TCP客户端)

    TCP传输:两个端点建立连接后会有一个传输数据的通道,这个通道就称为流,而且是建立在网络基础上的流,之为socket流,该流中既可以读取也可以写入. TCP的两个端点:一个客户端:ServerSock ...

  6. JAVA网络编程TCP通信

    Socket简介: Socket称为"套接字",描述IP地址和端口.在Internet上的主机一般运行多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定在一个端 ...

  7. Java网络编程(TCP服务端)

    /* * TCP服务端: * 1.创建服务端socket服务,并监听一个端口 * 2.服务端为了给客户端提供服务,获取客户端的内容,可以通过accept方法获取连接过来的客户端对象 * 3.可以通过获 ...

  8. JAVA网络编程-----TCP沟通

    java采纳TCP变速箱使用Socket和ServerSocket数据传输. 采纳tcp步模式数据传输: 1.设定client和服务器 ,分别对应Socket和ServerSocket 2.建立连接后 ...

  9. Java网络编程のTCP/IP

    TCP/IP参考模型和TCP/IP协议 与OSI参考模型相似,TCP/IP参考模型汲取了网络分层的思想,而且对网络的层次做了简化,并在网络各层都提供了完善的协议,这些协议构成了TCP/IP协议集,简称 ...

随机推荐

  1. 1.5 xss漏洞修复

    1.XSS漏洞修复 从上面XSS实例以及之前文章的介绍我们知道XSS漏洞的起因就是没有对用户提交的数据进行严格的过滤处理.因此在思考解决XSS漏洞的时候,我们应该重点把握如何才能更好的将用户提交的数据 ...

  2. SQL语言 持续更新中……

    SQL提供了很多的聚集函数  COUNT([DISTINCT\ALL]*) SUM([DISTINCT\ALL]<列名>)AVG().…… WHERE 子句中是不能用聚集函数作为条件表达式 ...

  3. 实现one hot encode独热编码的两种方法

    实现one hot encode的两种方法: https://stackoverflow.com/questions/37292872/how-can-i-one-hot-encode-in-pyth ...

  4. Unity 分场景打包

    分场景打包步骤:导入unity中AB包后 1: 指定场景  2: 指定abname  3: 指定objinabname  4: 协同  5: 委托 void string unity 先引入命名空间  ...

  5. Boost Python学习笔记(三)

    你将学到什么 在C++中调用Python代码时的传参问题 基础类型 继续使用前面的项目,但是先修改下Python脚本(zoo.py),添加Add和Str函数,分别针对整数.浮点数和字符串参数的测试 d ...

  6. [hdu 1671] Phone List - Trie

    Given a list of phone numbers, determine if it is consistent in the sense that no number is the pref ...

  7. 发邮件的python脚本

    1. 编写一个最简单的发邮件的python脚本   #coding: utf-8 import smtplib from email.mime.text import MIMEText from em ...

  8. go语言web开发框架_Iris框架讲解(六):Session的使用和控制

    在实际的项目开发中,我们会经常有业务场景使用到Session功能.在iris框架中,也为我们提供了方便使用,功能齐全的Session模块.Session模块的源码目录为kataras/iris/ses ...

  9. SSM框架的集成

    一 : SpringMVC 接收参数 基本数据类型+String JavaBean 一对一 一对多 Map List 注解 @RequestMapping("/user/add") ...

  10. ios 自定义导航栏,开启侧滑返回手势

    自定义一个常用ListViewController .h文件 #import <UIKit/UIKit.h> @interface ListViewController : UIViewC ...