socket与socketServer通信

服务端代码:
public class TalkServer {
    public static void main(String args[]){
        try {
            //创建服务器,开放7777端口
            ServerSocket server = new ServerSocket(7777);
            while(true){
                Socket socket = server.accept();
                System.out.println("客户端与服务端已建立连接");
                //获取客户端消息
                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String message = br.readLine();
                System.out.println("客户端消息:"+ message);
                server.close();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

客户端代码:
public class TalkClient {
    public static void main(String args[]){
        try {
            Socket socket = new Socket("127.0.0.1",7777);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            Scanner scanner = new Scanner(System.in);
            while(true){
                System.out.println("请输入发送消息内容:");
                bw.write(scanner.nextLine());
                bw.flush();
                socket.close();
                scanner.close();
            }
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
1、如果没有客户端服务,直接通过浏览器发送请求,即输入http://127.0.0.1:7777或localhost:7777,服务端运行结果:   客户端与服务端已建立连接   客户端消息:GET / HTTP/1.1 2、socket创建客户端发送请求,通过键盘输入发送请求   客户端运行结果:   请输入发送消息内容:   hello   服务端运行结果:   客户端与服务端已建立连接   客户端消息:hello   
时间: 2024-10-08 10:44:16

socket与socketServer通信的相关文章

Socket与SocketServer结合多线程实现多客户端与服务器通信

需求说明:实现多客户端用户登录,实现多客户端登录一般都需要使用线程技术: (1)创建服务器端线程类,run()方法中实现对一个请求的响应处理: (2)修改服务器端代码,实现循环监听状态: (3)服务器端每监听到一个请求,创建一个处理线程: 关于Socket与SocketServer介绍我这里不多说了,网上很多资料,这里推荐一个 http://www.cnblogs.com/rond/p/3565113.html 代码如下: 1.用户类 package com.j02.d04; import ja

Flex Socket与Java通信实例说明(转)

Flex Socket与Java通信实例说明(转) 这两天一直在flex的Socket ,现在终于懂了很多.由浅到深一步一步深入.慢慢体会实例,虽然实例都是在网上找的,但也经过了我的测试.我比较喜欢注释,也注释了很多. 跟着走你就会懂.. Flex端 和 Java端, 先运行Java端启动服务.然后在测试Flex. 实例一: Flex端: <?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow

Java Socket之单线程通信

1. 服务器端处理流程 接触一种技术,首先都要熟悉它的生命周期,这样才能从大局上看每个流程的细节.才有居高临下,势如劈竹的架势.加深我们对这种技术的理解.现在来看看socket服务器的生命周期. socket程序,一般情况下,都是服务器与客户端成双成对出现. 服务器端socket的生命周期为:监听服务器端口,接受客户端连接,获取客户端输入.输出流,处理业务逻辑.发送响应信息,关闭客户端连接,关闭服务区监听.详情如下所示: <<<-------------  <_< 向左看 2

php 基于socket的基本通信

php 基于socket的基本通信 1.前言 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议. 这种介绍度娘很多,希望了解更多的自行百度,往下看的朋友记得先开启socket扩展: 2.创建socke服务器端 基本步骤: 初始化86socket 端口绑定 端口进行监听 调用accept阻塞

linux c使用socket进行http 通信,并接收任意大小的http响应(三)

使用socket进行http通信的时候,浏览器返回的响应经常不是固定长度的,有时候很大,有些时候又非常小,十分讨厌.如果仅仅只是为了接收一小段信息,设置一个十分大的缓存,这样又会十分浪费.而且经常更改缓存大小的话,也不太好. 为了能够接收任意大小的响应,我程序的流程大概是这样子的: (1)将SOCKET接收的信息保存到一个动态分配内存的链表里.链表每个节点存储有固定字节大小的HTTP响应,每当一个节点存储满,就继续添加一个新的节点继续缓存: (2)接收信息结束后,将存储在链表当中的HTTP响应全

java socket实现全双工通信

大家在登录网站的时候,大部分时候是通过一个表单提交登录信息.但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证.下面来看看一看这个认证的工作过程:第一步:  客户端发送http request 给服务器,服务器验证该用户是否已经登录验证过了,如果没有的话,服务器会返回一个401 Unauthozied给客户端,并且在Response 的 header "WWW-Authenticate" 中添加信息.如下图.第二步:浏览器在接受到401 Unauthozie

linux c使用socket进行http 通信,并接收任意大小的http响应(四)

终于说到SOCKET 这里了.SOCKET进行http通信的实际就是利用socket将http请求信息发送给http服务器,然后再利用socket接收http响应. 由于本文与之通信的服务器是ip已知的,所以为了能够将能够和互联网网站进行http通信还要另外像办法. 代码如下: (1)http.h //http.c当中可能被其他程序锁用到的函数的声明#include "http_url.h"#ifndef http_h#define http_htypedef struct socka

Windows下基于socket多线程并发通信的实现

本文介绍了在Windows 操作系统下基于TCP/IP 协议Socket 套接口的通信机制以及多线程编程知识与技巧,并给出多线程方式实现多用户与服务端(C/S)并发通信模型的详细算法,最后展现了用C++编写的多用户与服务器通信的应用实例并附有程序. 关键词:Windows:套接字:多线程:并发服务器: Socket 是建立在传输层协议(主要是TCP 和UDP)上的一种套接字规范,最初由美国加州Berkley 大学提出,为UNIX 系统开发的网络通信接口,它定义了两台计算机之间通信的规范,sock

Python网络编程02/基于TCP协议的socket简单的通信

目录 Python网络编程02/基于TCP协议的socket简单的通信 1.昨日内容回顾 2.socket 2.1 socket套接字 2.2 基于TCP协议的socket简单通信 Python网络编程02/基于TCP协议的socket简单的通信 1.昨日内容回顾 1.单播:单独联系某一个人 2.广播:给所有人发送消息(群发) 3.比特流:bit就是0101跟水流一样的源源不断的发送01010101 4.以太网协议:将数据进行分组:一组称之为一帧,数据报 head|data head:18字节: