socket通信聊天通信

基于socket通信的局域网聊天室搭建(socket通信第四弹) 欢迎转载,请注明转载微信订阅号(安卓编程入门进阶)。 百度云原清晰度地址:http://pan.baidu.com/s/1mhS0H8O 在前两次课程已经实现了客户端向服务器端的数据单向传输并且能够将数据呈现到界面,本次课程将前两次课程合并完成服务器端向客户端传递数据并展示。最终实现的是一个基于socket通信的局域网单点聊天室。 1、  服务器端的界面布局为从上至下为开启按钮、聊天输入框、 阅读详情

在linux下,可以利用socket通信建立起简单的聊天协议,以下就是运行在linux下的简单聊天通信,分为服务端server.c和客户端client.c。

//server.c - gcc -o s server.c
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>


#define EHCO_PORT 8080
#define MAX_CLLENT_NUM 10


int main()
{
    int sock_fd;
    struct sockaddr_in serv_addr;
    int clientfd;
    struct sockaddr_in clientAdd;
    char buff[101];
    socklen_t len;
    int n;
    /*socket*/
    sock_fd=socket(AF_INET,SOCK_STREAM,0);
    if(sock_fd==-1){
       perror("creket socket error!");
       return 0;
    }
    else{
       printf("success to create socket %d\n",sock_fd);
    }


    bzero(&serv_addr,sizeof(serv_addr));
    serv_addr.sin_family=AF_INET;
    serv_addr.sin_port=htons(EHCO_PORT);
    serv_addr.sin_addr.s_addr=htons(INADDR_ANY);
    bzero(&(serv_addr.sin_zero),8);


    if(bind(sock_fd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))!=0){
       printf("bind address fail!%d\n", errno);
       close(sock_fd);
       return 0;
    }else{
       printf("success to bind address!\n");
    }


    if(listen(sock_fd,MAX_CLLENT_NUM)!=0){
       perror("listen socket error !\n");
       close(sock_fd);
       return 0;
    }else{
       printf("success to listen!\n");
    }


    len =sizeof(clientAdd);
    clientfd=accept(sock_fd,(struct sockaddr*)&clientAdd,&len);
    if(clientfd<=0)
    {
      perror("accept() error!\n");
      close(sock_fd);
      return 0;
    }


    while((n=recv(clientfd,buff,100,0))>0){
       buff[n]='\0';
       printf("number of receive bytes=%d data =%s\n",n,buff);


       fflush(stdout);
       send(clientfd,buff,n,0);
       if(strncmp(buff,"quit",4)==0)
       break;
     }
         close(clientfd);
close(sock_fd);
return 0;
}



 

 

 

//client - gcc -o client.c

#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>


#define EHCO_PORT 8080
#define MAX_COMMAND 5


int main()
{
   int sock_fd;
   struct sockaddr_in serv_addr;


   char *buff[MAX_COMMAND]={"abc","def","test","hello","quit"};
   char tmp_buf[100];
   int n,i;
   sock_fd =socket(AF_INET,SOCK_STREAM,0);
   if(sock_fd==-1){
     perror("create socket error!\n");
     return 0;
   }
   else{
      printf("success to create socket %d\n",sock_fd);
   }


  bzero(&serv_addr,sizeof(serv_addr));
  serv_addr.sin_family=AF_INET;
  serv_addr.sin_port=htons(EHCO_PORT);
  serv_addr.sin_addr.s_addr=htons(INADDR_ANY);
  bzero(&(serv_addr.sin_zero),8);


  if(-1==connect(sock_fd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))){
      perror("connect() error!\n");
      close(sock_fd);
      return 0;
  }
   printf("success connect to server!\n");


   for(i=0;i<MAX_COMMAND;i++)
   {
    send(sock_fd,buff[i],100,0);
    n=recv(sock_fd,tmp_buf,100,0);
    tmp_buf[n]='\0';
    printf("data sent:%s receive:%s\n",buff[i],tmp_buf);
    if(0==strncmp(tmp_buf,"quit",4))
    break;
   }
   close(sock_fd);
   return 0;
}

Ubuntu环境下基于Socket通信的网络聊天系统 在Linux环境下,利用Socket通信实现网络聊天程序,主要包括以下功能: (1)系统各菜单功能界面、聊天界面的显示 (2)用户的注册、登录(手机号注册,合格性检测,重复性检测),注册后创建用户文件夹 (3)可支持好友管理(好友列表在线显示、增删查,网络传输文件),账户管理(修改信息,权限变更(创新可调用MD5库文件) (3)聊天方式分群聊和私聊两种方式,群聊可管理员设置禁言,代码实现... 阅读详情

相关推荐

Linux利用 Socket 通信实现网络聊天程序

写在前面:大家好,我是草莓橙须圆。毕业之前在优快云和微信公众号活跃 欢迎关注我的公众号:【草莓橙须圆】 微信公众号主要就是更新大学生或者考研党的日常 优快云主要就是学习Java过程中总结的笔记,以及编程分享 这篇文章主要是给大家分享Linux利用 Socket 通信实现网络聊天程序 1.【问题描述】 在 Linux 环境下,利用 Socket 通信实现网络聊天程序,主要包括以下功能: ⑴ 写一个 shell 脚本,实现聊天界面的显示、用户的注册、登录(登录后可显示 用户昵称)、聊天方式的选择等功能。.

weixin_42278339的博客 3794

【达梦数据库】创建 SOCKET 连接失败/网络通讯异常

达梦数据库:创建 SOCKET 连接失败/网络通讯异常

weixin_50694517的博客 1万+

Socket通信实现多人聊天应用

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

达梦error:[-70028]:创建SOCKET连接失败

[-70028]:创建SOCKET连接失败 " 排查这个问题方法步骤

Penrosee的博客 1万+

基于socket通信的多人聊天

不多说绝对好用,基于socket的通信,一步到位

文件传输 聊天 socket通信

文件传输 聊天 socket通信 文件传输 聊天 socket通信 文件传输 聊天 socket通信

Unrecognized Windows Sockets error: 10106: create 的解决

一个windows系统上出现socket无法创建的问题,导致诸多无法访问,服务无法创建等问题 操作环境 错误出现情景 解决 参考 操作环境 win7、eclipse最新版、jdk8、redis3.x、maven3.5.x 错误出现情景 个人使用java客户端操作redis(非集群模式)报错: Unrecognized Windows Socke...

maoyuanming0806的博客 4183

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1575

linux socket编程 errno 1 创建套接字失败

权限问题 在root用户下启动程序。 mSocket = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP);      if (m_hSocket == INVALID_SOCKET)      {          printf("create socket err:%d\n", errno);          return false;     }errno ...

so_do_it的博客 3418

Delphi中使用FireDAC与uniDAC高效连接PostgreSQL的实战指南

本文为Delphi开发者提供了使用FireDAC与uniDAC组件高效连接PostgreSQL数据库的实战指南。文章详细对比了两款组件的选择策略,重点解析了驱动依赖(libpq.dll)的配置、连接参数设置、常见错误排查及性能优化技巧,旨在帮助开发者快速构建稳定可靠的数据库连接。

tomato的博客 805

接口调试必看:status显示canceled的3种常见原因及修复方法

本文深度解析了接口调试中status显示canceled的三种核心原因:网络层中断(如请求超时)、应用层逻辑主动取消(如请求竞态、组件卸载)以及用户交互与浏览器行为。文章提供了从诊断到修复的系统性方案,包括分析Network Timing、使用Axios CancelToken、优化请求策略与性能,帮助开发者从根本上解决这一常见问题。

bb456的博客 936

【JAVA实战】用socket通信编程制作多人聊天室

在七个层级关系中,我们讲的socket属于传输层,其中UDP是⼀种⾯向⽆连接的传输层协议。UDP不关⼼对端是否真正收到了传送过去的数据。如果需要检查对端是否收到分组数据包,或者对端是否连接到⽹络,则需要在应⽤程序中实现。UDP常⽤在分组数据较少或多播、⼴播通信以及视频通信等多媒体领域。在这⾥我们不进⾏详细讨论,这⾥主要讲解的是基于TCP/IP协议下的socket通信。 socket是基于应⽤服务与TC............

陈橘又青的博客 8587

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

socket实现聊天室通信

基于TCP 服务端: import socket # 1. 创建一个socket对象 server = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM) # 2. 绑定IP和端口,供客户端连接 server.bind(('172.25.254.67',5000)) # 3. 监听是否有客户端连接 server.liste...

King15229085063的博客 4902

BPMN-JS :修改节点“Change Type”事件类型

修改路径:node_modules\bpmn-js\lib\features\replace\ReplaceOptions.js。

TaylorY的博客 679

ADS8681数据手册没讲透的细节:SPI时序、量程切换与电压换算的避坑指南

本文深入解析ADS8681数据手册未提及的SPI时序优化、量程切换陷阱与电压校准技巧。针对树莓派5与ADS8681的SPI通信问题,提供CPOL/CPHA配置建议;详解量程切换的位操作玄机与寄存器配置流程;并提出三步校准法应对非理想供电环境,帮助开发者提升ADC测量精度。

weixin_29178069的博客 519

c#窗体实现 Socket的TCP通信 聊天室案例

一.Socket(套接字)通信概念   套接字(socket)是通信的基石,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。   应用层通过传输层进...

qq_43552118的博客 3587

新能源知识库(37)三代储能电芯介绍

2025年储能电芯三代技术演进概述 截至2025年6月,储能电芯已明确划分为三代: 第一代(280Ah):2019-2023年主流,能量密度180Wh/kg,循环寿命8000次,成本降至0.6元/Wh; 第二代(314Ah):2023年起主导,容量超1kWh,能量密度提升20%,循环寿命达15000次,系统成本降低15%; 第三代(500Ah+):2024年量产,能量密度突破440Wh/L(如宁德时代587Ah、阳光电源684Ah),20尺集装箱容量达6-9MWh,零部件成本降30%。 技术路线分化:卷绕派

竹君子之家 7910

【Socket编程二】利用Socket实现聊天通信的编程实例

利用Socket实现聊天通信的编程实例 在上文中,介绍了Socket相关的内容以及Socket编程的入门实例,本篇文章将写一个利用Socket实现客户端服务器聊天的小程序。 话不多说,眼见为实,先上图: 服务器: 客户端: 其中绿色字为对应客户端/服务器输入内容,黑色字是对方回应内容。 DataInputStream/DataOutputSt

noaman_wgs的博客 977

Windows部署小龙虾 OpenClaw 报错不断?参考这篇文章,轻松配置 OpenClaw 所需环境

想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅

XiaoqiangClub的博客 363

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

基于Socket通信的在线网络聊天室

文章目录项目结构clientconstansentityutilIOserveruiother大致思路演示 时间:2021/4/20 开发环境: jdk1.8 编译器:idea2018 编程语言:java 源码下载:github 前言:这个项目是笔者在学习完JavaSE基础后,为夯实基础所做的JavaSE实战开发。这一项目涉及的知识点有逻辑基础、面向对象、异常、集合框架、IO流、网络编程、多线程等。实现了包括登录、服务器监控、群聊私聊、发送图片、抖动、改变字体在内的功能。 项目结构 整个项目大体分为服务端

降温的博客 2842

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android开发笔记(一百一十一)聊天室中的Socket通信

Socket通信 基本概念 对于程序开发来说,网络通信的基础就是Socket,但因为是基础,所以用起来不容易,今天我们就来谈谈Socket通信。计算机网络有个大名鼎鼎的TCP/IP协议,普通用户在电脑上设置本地连接的ip时,便经常看到下图的弹窗,注意红框部分已经很好地描述了TCP/IP协议的作用。 TCP/IP是个协议组,它分为三个层次:网络层、传输层和应用层: 网络层包括:I

aqi00的博客 7204

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java Socket通信实现多人多端网络画板聊天室

老规矩,先上实现的效果展示! Java Socket通信实现多人多端网络画板聊天室 本文介绍了一个基于Socket实现网络画板聊天室的完整过程,聊天室具备多人文本对话、同步绘图等功能。 初尝试 Socket简介 Socket英文原意有插座、插孔的意思,在计算机术语中表示套接字。所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。Socket就像一个邮

旭日东升的博客 3952

基于Android的聊天软件,Socket即时通信,实现用户在线聊天

基于Android的聊天软件,Socket即时通信,单聊,聊天室,可自行扩展功能,完善细节。 【实例功能】 1.运行程序,登录界面, 注册账号功能 2.进入主界面,有通讯录, 个人信息。 3.点击好友会话框,进入单人聊天 4.点击右上角,进入多人聊天 5.可以发送文字及表情(注:聊天界面及表情仿微信) 效果演示: 登录页面: 注册页面: 主页面: 单人聊天: 还有群聊,个人信息等页面,详细请下载源码。 功能实现: 服务器端: 1.启动Socket服务器,设置监听端口,不断监听客户端连接 2.服务器

Cmudeng的博客 3541

Socket通信,实现简单的双人聊天功能

Socket通信 1.简单介绍 学习Socket也只是通过一个小例子学习的,关于Socket原理目前只是了解到是基于TCP协议,关于TCP与UDP协议区别可以去百度详情查一下他们的区别之处,大体上是传输高效与安全方面的区别。 2.代码实现 关于双人聊天功能实现时候,大体分为一个客户端类,一个服务端类,服务器与客户端之间可以相互发送消息。 在客户端和服务端中有监听类和发送类,实现互相之间发送消息。核心代码: //监听消息及打印出 ObjectInputStream ois = new Objec

卓怡学长的博客 1707
上一篇: 简历模板免费下载网站(提供免费下载模板网址)
下一篇: 俄罗斯方块游戏51单片机实现
JIANXIN.Y
博客等级 码龄9年 273粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值