【网络编程】用Socket实现聊天小程序

客户端:

 1 package day18_网络编程;
 2
 3 import java.io.FileInputStream;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.OutputStream;
 7 import java.net.Inet4Address;
 8 import java.net.InetAddress;
 9 import java.net.Socket;
10 import java.net.UnknownHostException;
11 import java.util.Scanner;
12
13 public class Client {
14
15     public static void main(String[] args) throws IOException {
16         InetAddress address = InetAddress.getByName("127.0.0.1");
17         while (true) {
18             Socket socket = new Socket(address, 8833);
19             // 向服务器传输数据
20             OutputStream os = socket.getOutputStream();
21             Scanner sc = new Scanner(System.in);
22             String word = sc.next();
23             os.write(word.getBytes());
24             socket.shutdownOutput();
25
26             // 读取服务器发送过来的信息
27             InputStream is = socket.getInputStream();
28             byte[] bs = new byte[1024];
29             int length = -1;
30             while ((length = is.read(bs)) != -1) {
31                 String str = new String(bs, 0, length);
32                 System.out.println(str);
33             }
34             socket.shutdownInput();
35
36             os.close();
37             is.close();
38         }
39     }
40
41 }

服务器端:

 1 package day18_网络编程;
 2
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.io.OutputStream;
 6 import java.net.ServerSocket;
 7 import java.net.Socket;
 8 import java.util.Scanner;
 9
10 import sun.nio.cs.ext.ISCII91;
11
12 public class Server {
13
14     public static void main(String[] args) throws IOException {
15         ServerSocket serverSocket = new ServerSocket(8833);
16
17         while (true) {
18             Socket socket = serverSocket.accept();
19             // 读取客户端发送过来的信息
20             InputStream is = socket.getInputStream();
21             int length = -1;
22             byte[] bs = new byte[1024];
23             while ((length = is.read(bs)) != -1) {
24                 String msg = new String(bs, 0, length);
25                 System.out.println(msg);
26             }
27             socket.shutdownInput();
28
29             // 向客户端发送信息
30             OutputStream os = socket.getOutputStream();
31             Scanner scanner = new Scanner(System.in);
32             String toWord = scanner.next();
33             os.write(toWord.getBytes());
34             socket.shutdownOutput();
35             is.close();
36             os.close();
37         }
38
39     }
40
41 }
时间: 2024-12-26 13:13:29

【网络编程】用Socket实现聊天小程序的相关文章

Netty学习——基于netty实现简单的客户端聊天小程序

Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEven

Unix网络编程 之 socket基础

基本结构 (这部分的地址均为网络地址<网络字节序>) 1.struct sockaddr:通用套接字地址结构 此结构用于存储通用套接字地址. 数据结构定义: typedef unsigned short sa_family_t; struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };    sa_fa

Unix网络编程 之 socket简介

概述 Socket的英文原意是"孔"或"插座",现在,作为Unix的进程通信机制,常常取"插座"这一意义.日常生活中常见的插座,有的是信号插座,有的是电源插座,有的可以接收信号或能量,有的可以发送信号或能量.举例来说,电话线与电话机之间需要一个插座(相当于两者之间的接口,这一部分装置物理上是存在的).对于网络编程,socket就相当于电话线与电话机之间的插座. 将电话系统与面向连接的Socket机制相比,两者之间有着惊人的相似的地方.以一个国家的

python 网络编程:socket和select实现伪并发

上节地址:Python网络编程:socket 先补充点内容: 一.send和sendall区别 send,sendall ret = send('safagsgdsegsdgew') #send 发送完成后会有一个返回值,告知发送了多少,并不一定会把数据全部发送过去. sendall:内部调用send,将数据全部发送完为止. 因此我们使用时最好使用sendall 二.粘包 粘包问题需要理解recv()的使用,我们定义接收值的时候会写recv(1024)表示一次接收1024字节,但是有时候接收的数

Netty 聊天小程序

这节讲解基于 Netty 快速实现一个聊天小程序. 一.服务端 1. SimpleChatServerHandler(处理器类) 该类主要实现了接收来自客户端的消息并转发给其他客户端. 1 /** 2 * 服务端处理器 3 */ 4 public class SimpleChatServerHandler extends SimpleChannelInboundHandler<String> { 5 public static ChannelGroup channels 6 = new Def

小程序版聊天室|聊天小程序|仿微信聊天界面小程序

仿微信聊天小程序weChatRoom案例,一款基于微信小程序开发的聊天室实战项目.很早之前就有开发过一个h5版聊天室,最近又在原先思路的基础上开发了个小程序版聊天室,功能效果非常接近微信聊天,实现了消息.表情发送,小程序表情解析,图片.视频上传预览,打赏.红包等微交互场景.整体界面风格及效果挺不错哒. ◆ 先睹为快 ◆ 项目中用到的弹窗插件,是自己开发的小程序弹窗组件wcPop: <!-- <>引入弹窗模板.Start --><import src="/utils/

python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序

socket介绍: socket(简称套接字),是进程间通讯的一个工具,他能实现把数据从一方传输到另一方,完成不同电脑上进程之间的通讯,它好比数据的搬运工.socket应用:不夸张来说,只要跟网络相关的应用程序或者软件都使用到了socket, 比如:微信,qq等使用socket创建udp网络程序的流程:1,创建客户端套接字2,发送/接收数据3,关闭套接字使用程序展现流程 :(使用的 ide为pycharm):1,首先创建socket,在 Python 中 使用socket 模块的函数 socke

Java网络编程以及简单的聊天程序

网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的.这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件. 全部代码下载:链接 1.网络编程简要概述: 网络编程实质实质就是两个(或多个)设备(例如计算机)之间的数据传输.而要实现两台计算机通过互联网连接进行数据传输,必输要满足计算机网络的5层协议(物理层,数据链路层,网络层,运输层,应用层):当然有划分可能不同,但现在大家比较容易接受理解的是五层模型.而其中前三层物理层,数据链路层以及

Android 网络编程基础之简单聊天程序

前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: 1 package com.jiao.socketdemo; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.OutputStreamWriter;