客户端发数据到服务端

Tcp传输,客户端建立的过程。

  1,创建tcp客户端socket服务。使用的是Socket对象。建议该对象一创建就明确目的地。要连接的主机。
  2,如果连接建立成功,说明数据传输通道已建立。该通道就是socket流 ,是底层建立好的。 既然是流,说明这里既有输入,又有输出。想要输入或者输出流对象,可以找Socket来获取。可以通过getOutputStream(),和getInputStream()来获取两个字节流。

  3,使用输出流,将数据写出。

  4,关闭资源。

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException; public class ClientDemo {
public static void main(String[] args) throws UnknownHostException, IOException { //创建客户端socket服务。
Socket socket = new Socket("127.0.0.1",10002); //获取socket流中的输出流。
OutputStream out = socket.getOutputStream(); //使用输出流将指定的数据写出去。
out.write("tcp演示:哥们又来了!".getBytes()); //关闭资源。
socket.close(); }
}

服务端接收客户端发送过来的数据,并打印在控制台上。

建立tcp服务端的思路:

  1,创建服务端socket服务。通过ServerSocket对象。
  2,服务端必须对外提供一个端口,否则客户端无法连接。
  3,获取连接过来的客户端对象。
  4,通过客户端对象获取socket流读取客户端发来的数据 并打印在控制台上。
  5,关闭资源。关客户端,关服务端。

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket; public class ServerDemo {
public static void main(String[] args) throws IOException { //1创建服务端对象。
ServerSocket ss = new ServerSocket(10002); //2,获取连接过来的客户端对象。
Socket s = ss.accept();//阻塞式. String ip = s.getInetAddress().getHostAddress(); //3,通过socket对象获取输入流,要读取客户端发来的数据
InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int len = in.read(buf);
String text = new String(buf,0,len);
System.out.println(ip+":"+text); s.close();
ss.close(); } }

网络编程_TCP协议_客户端与服务端的更多相关文章

  1. 二、网络编程-socket之TCP协议开发客户端和服务端通信

    知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人, ...

  2. 《UNIX网络编程》之多客户连接服务端,可重用套接字对

    该网络编程之客户端与服务端程序模板支持: 1. 多客户端同时连接服务端,即服务程序可以同时为多个客户端服务: 2. 服务端支持套接字对重用,即即使处于TIME_WAIT状态,仍可支持服务端重启: 3. ...

  3. linux网络编程学习笔记之三 -----多进程并发服务端

    首先是fork()函数.移步APUE 8.3.  比較清晰的解释能够參考http://blog.csdn.net/lingdxuyan/article/details/4993883和http://w ...

  4. 网络编程_UDP协议_发送端与接收端

    创建UDP传输的发送端 : 1.建立udp的socket服务   2.将要发送的数据封装到数据包中   3.通过udp的socket服务 将数据包发送出去   4.关闭socket服务(因为调用了系统 ...

  5. 网络编程_UDP协议_聊天程序

    发送端:(将数据源改为键盘录入) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

  6. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...

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

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

  8. 网络编程 UDP协议 TCP局域网客户端与服务端上传下载电影示例

    UDP协议 (了解) 称之为数据包协议,又称不可靠协议. 特点: 1) 不需要建立链接. 2) 不需要知道对方是否收到. 3) 数据不安全 4) 传输速度快 5)能支持并发 6) 不会粘包 7) 无需 ...

  9. c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP  入门级客户端与服务端交互代码 网 ...

随机推荐

  1. 下拉加载更多DEMO(js实现)

    项目的一个前端页面展示已购买商品时,要求能下拉加载更多.花了点时间研究这个功能,以前没做过. 首先需要给div加scroll事件,监听滚动条滚动动作.那何时触发加载动作呢?当滚动条滚到底的时候.如何判 ...

  2. [转]【mysql监控】查看mysql库大小,表大小,索引大小

    本文转自:http://blog.sina.com.cn/s/blog_4c197d420101fbl9.html 查看所有库的大小 mysql> use information_schema; ...

  3. .Net Core使用Socket与树莓派进行通信

    前言 去年买的树莓派一直放在抽屉里吃灰,前些阵子Debian 9发布,也不出意外的支持了树莓派. 于是重新拿出读卡器又重新了装上了Debian桌面版系统. 介绍 现在这个东西目前的程度只是了解一下Py ...

  4. SQL Server T—SQL 语句【查】

    一 查询数据(关键字:select) (1)简单查询        select * from 表名                    ——查全表 select 列名 from 表名 select ...

  5. Java基础——网络编程(二)

    一.套接字 Socket 网络驱动程序提供给应用程序编程的接口和一种机制,可以比喻成一个港口码头 应用程序只要把货放在这,就算完成了货物的运送.它在应用程序中创建,通过一种绑定机制与驱动程序建立关系, ...

  6. jquery判断输入框的字符串是否为空或者空格

    function checkKey(key) { if($.trim(key) == ''){ /** * 输入的字符串为空,空格 */ alert('请输入关键字'); return false; ...

  7. AutoMapper在项目中的应用

    一.先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领 ...

  8. Nginx部署入门

    一.什么是Nginx? Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3 ...

  9. web api 权限控制

    https://www.cnblogs.com/landeanfen/p/5287064.html 我只是个搬运工, 我只想存个档

  10. Python技巧——list与字符串互相转换

    Python技巧——list与字符串互相转换   在Python的编程中,经常会涉及到字符串与list之间的转换问题,下面就将两者之间的转换做一个梳理. 1.字符串转换成list 命令:list() ...