前几天看到一个简单的基于socket的程序,特放上来!

用Java实现基于Socket的网络编程 使用Java语言,采用TCP协议,实现一对一、一对多的通信(无用户界面) 阅读详情

不过功能比较简单,后面在些基本上继续完善吧!

Server.c

/* 服务器程序 */

#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include

int main(int argc,char *argv[])
{
 int sockfd,new_fd;
 struct sockaddr_in server_addr;
 struct sockaddr_in client_addr;
 
 int sin_size,portnumber;
 char hello[]="Hello,Welcome to visited btlfe's Server.../n";
 
 if(argc!=2)
 {
  fprintf(stderr,"Usage:%s portnumber/a/n",argv[0]);
  exit(1);
 }
 
 if((portnumber=atoi(argv[1]))<0)
 {
  fprintf(stderr,"Usage:%s portnumber/a/n",argv[0]);
  exit(1);
 }
 
/* 服务器端开始建立socket描述符*/
 
 if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
 {
  fprintf(stderr,"Socket error:%s /n/a",strerror(errno));
  exit(1);
 }
 
 puts("This is a simple program to test socket connect!");
 sleep(1);
 puts("Written by btlfe of 6.21,2004");
 sleep(2);
 puts("Now server starting... please wait...");
 
/* 服务器端填充sockaddr结构*/

 bzero(&server_addr,sizeof(struct sockaddr_in));
 server_addr.sin_family=AF_INET;
 server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
 server_addr.sin_port=htons(portnumber);
 
/*捆绑sockfd描述符*/

 if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
 {
  fprintf(stderr,"Bind error:%s/n/a",strerror(errno));
  exit(1);
 }
 
/*监听sockfd描述符*/
 
 if(listen(sockfd,5)==-1)
 {
  fprintf(stderr,"Listen error:%s/n/a",strerror(errno));
  exit(1);
 }
 
/*服务器阻塞,直到客户程序建立连接*/

 while(1)
 {
  sin_size=sizeof(struct sockaddr_in);
  if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size))==-1)
  {
   fprintf(stderr,"Accept error:%s/n/a",strerror(errno));
   exit(1);
  }
  
  fprintf(stderr,"Server get connetion from %s/n",inet_ntoa(client_addr.sin_addr));
  
  if(write(new_fd,hello,strlen(hello))==-1)
  {
   fprintf(stderr,"Write Error:%s/n",strerror(errno));
   exit(1);
  }
  
  close(new_fd);
 }
 
 close(sockfd);
 exit(0);
}

 

client.c

/* 客房端程序*/

#include
#include
#include
#include
#include  
#include
#include
#include
#include


int main(int argc,char *argv[])
{
 int sockfd;
 char buffer[1024];
 struct sockaddr_in server_addr;
 struct hostent *host;
 int portnumber,nbytes;
 
 buffer[2]='/0';
 
 if(argc!=3)
 {
  fprintf(stderr,"Usage:%s hostname portnumber /a/n",argv[0]);
  exit(1);
 }
 
 if((host=gethostbyname(argv[1]))==NULL)
 {
  fprintf(stderr,"Gethostname error/n");
  exit(1);
 }
 
 if((portnumber=atoi(argv[2]))<0)
 {
  fprintf(stderr,"Usage:%s hostname portnumber /a/n",argv[0]);
  exit(1);
 }
 
/*客房端程序开始建立socket描述符*/

 puts("This is a simple program to test socket connect!");
 sleep(1);
 puts("Written by btlfe,6.21,2004");
 sleep(2);
 puts("Now connect to the server...");
 
 if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
 {
  fprintf(stderr,"Socket Error:%s/a/n",strerror(errno));
  exit(1);
 }

/*客户端程序填充服务器端资料*/
 
 bzero(&server_addr,sizeof(server_addr));
 server_addr.sin_family=AF_INET;
 server_addr.sin_port=htons(portnumber);
 server_addr.sin_addr=*((struct in_addr *)host->h_addr);
 
/*客户端程序发起连接请求! */

 if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
 {
  fprintf(stderr,"Connetc Error:%s/a/n",strerror(errno));
  exit(1);
 }
 
/*连接成功了*/
 
 if((nbytes=read(sockfd,buffer,1024))==-1)
 {
  fprintf(stderr,"Read Error:%s/n",buffer);
  exit(1);
 }
 
 buffer[nbytes]='/n';
 printf("I have received:%s/n",buffer);
 printf("%s",buffer);
 puts("End");
 close(sockfd);
 exit(1);
}

ESP32-IDF开发之旅 网络篇⑩ Web配网 本文介绍了基于ESP32S3的Web配网实现方案。作者通过移植开源项目,在ESP32S3上实现了WiFi配置功能,包括AP模式创建、HTTP服务器搭建、NVS存储读写等核心功能。文章详细解析了代码结构,包含WiFi初始化、事件处理、NVS存储管理和HTML页面服务等关键模块。实现方案采用AP+STA双模式,支持通过网页扫描WiFi并保存配置信息,适用于物联网设备的网络配置场景。代码中使用了FreeRTOS任务、ESP-IDF事件组等技术,并提供了完整的错误处理和日志记录功能。 阅读详情

相关推荐

头歌 JAVA 桥接模式实验

这样,通过客户端代码配置不同的 FileConvertor 子类和 DataHandler 子类(如 OracleHandler 或 SQLServerHandle),即可实现从不同数据库读取数据并转换成不同格式的功能,而无需修改已有代码。

m0_74091276的博客 3191

一个简单的socket文件传输程序

这几天学习了socket的一些知识,尝试下写点程序。下面就是一个简单的文件传输程序,目前的功能也就是让服务器传输文件到达客户端而已,。这个类是用来封转socket的一些操作import java.net.*; import java.io.*; /** * 该类封装socket的发送,接收等操作, * @author Administrator * */ public class Con

sleepinmoon的专栏 548

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8009

【小白入门】Socket和webSocket入门 这一篇就够了!用php的Socket自己实现简单webSocket服务器!

这几天研究了下php实现webSocket的方法,网上查了不少博文,涉及到的知识点不少。但却非常值得学,因为这方面典型的应用场景非常的多,消息推送,聊天室,所有需要长连接的地方都会用到它。 当然可能有人会说有Workerman的框架,不用自己实现它,从工作角度来看,没错。 但是,框架封装的东西屏蔽了原生的实现方法,看着是简单,但利于工作却并不...

质疑那些理所当然,才是理所当然! 3916

CST实战:5分钟搞定圆极化天线轴比分析(含远场设置技巧)

本文提供了一份CST Studio Suite圆极化天线轴比分析的实战指南。文章详细讲解了轴比的概念与工程标准,并重点演示了如何正确设置远场监视器以获取Axial Ratio数据,包括关键步骤与后处理技巧。最后,通过植入式天线在生物组织环境中的案例,分析了复杂环境对轴比性能的影响及优化思路。

nokia的博客 996

EduCoder 计算机网络实验 IP协议分析

第1关:跟踪抓包 任务描述 相关知识 IPV4数据包 截获数据报 分析截获结果 使用git将本地文件推送到远程仓库永久保存 操作要求 任务描述 本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。 相关知识 为了完成本关任务,你需要掌握: 截获数据报; 简单分析数据包格式。 IPV4数据包 网际协议第 4 版(Internet Protocol version 4

qq_41975868的博客 1万+

一个简单的socket编程案例

这是服务端 import java.io.*; import java.net.*; public class Server{ public static void main(String [] args) throws Exception{ ServerSocket server =new ServerSocket(170); Socket client...

weixin_45239414的博客 207

TCN+iTransformer时间序列预测实战:从风电功率预测到源码解析(附完整代码)

本文深入探讨了TCN与iTransformer融合模型在时间序列预测,特别是风电功率预测中的应用。通过解析iTransformer‘倒置’视角的创新架构与TCN强大的局部时序捕捉能力,文章提供了完整的融合方案设计、源码实现及实战调优经验,旨在构建更强大的下一代预测引擎。

weixin_29062671的博客 265

java socket应用篇 之 简单聊天程序

                                              java socket 之 简单聊天程序    这两天一直在学习java中的socket。前几天学习了一个简单的聊天程序,我尝试着自己写了一个具有可视化界面的版本,用到了简单的多线程,但是服务器端只能接受单一客户端,还没有做到接受多个客户端。另外,在聊天的信息显示上还不够完美,比较粗糙,希望大家多多指教

2441

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

Google Earth Engine:LandTrendr (Landsat Collection 2)全更新使用(代码调用+UI交互)

本文介绍了使用Landsat Collection 2进行连续变化监测的分析方法,包含代码实现和可视化界面两部分。代码部分通过Google Earth Engine平台运行LandTrendr算法,设置参数包括时间范围、光谱指数、变化检测阈值等,最终生成变化幅度和检测年份的可视化图层,并将结果导出至Google Drive。可视化界面部分展示了基于LandTrendr的土地覆盖变化结果,结合Landsat影像进行分析。整个方法实现了从数据处理到结果展示的完整流程,适用于森林覆盖等环境变化监测。

此星光明博客 211

用streambuf简单封装socket

C++的I/O流是很强大的. 一方面在于易于使用, 类型安全. 另一方面在于容易扩展. 前几天尝试了一下用streambuf来封装客户端使用的socket. 虽然代码运行正确, 自己 的概念确实很模糊. 今天下回来cuj的光盘, 浏览了一下其中一篇也是关于使用stream来 封装socket的文章, 发现作者的概念也不比我清楚到哪里去. ;-) 先考虑一下最后客户代码的写法, 我希望是这样  

经天纬地 3975

AE-扭曲-变形-弧

一些AE效果的着色器实现记录

What_can_you_do的博客 1173

简单理解Socket及TCP/IP、Http、Socket的区别

题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的、C#的、甚至Node.js的,但

JenMinZhang的专栏 4万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SOCKET控制台双线程聊天程序

                                     SOCKET控制台双线程聊天程序    今天算是终于拿下了最简单的socket(tcp模式)+线程的聊天程序,嘿嘿,还记得前些天写这个程序的狼狈情景,这下总算能扬眉吐气了哈。    对于一般的socket编程入门例子,不外乎讲下如何用套接字发送一个信息,最终得到的应用程序和我们的QQ这种聊天程序比起来,实在是不能

破楼兰 2316

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

简单理解Socket

题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人;但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有意思,动手写几个demo,但web socket需要特定的服务器支持,由于标准制定工作还没完成,所以没有多少主流的服务器支持,自己在网上下载了几个实现,包括php的、C#的、甚至Node.js的,但一个是协议变化比较大,很多代码已经过时了,再就是有一些支持最新的标准,但是我想稍微改造一下,看人家源代码的时候云

daobuxinzi的博客 141

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

一个socket的基础例子

我不得不说socket编程对于我来说是很复杂的,以前总是说socket,但到现在来说还是没有把他弄懂,即使当时记得了但过了几天又忘记了,所以需要常常看才能牢记。 socket编程的基础函数有socket(),bind(), listen(),accept(),send(),sendto(),recv(),recvfrom()根据客户端还是服务端不一样,针对udp,tcp又是不一样的,先对这几个函

4555

一个简单的基于socket的通讯处理程序

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33966365的博客 190

Scala编写的简单Socket聊天程序

这几天被Scala吸引住了,去图书馆借了本《快学Scala》,发现很funny~,然后无意在youtube上看到一个关于scala的socket编程。于是跟着学习,整理了一下代码,如下: 服务器代码: package com.server import java.net.{ServerSocket,Socket} import java.io.BufferedInputStream impo

ZeroGeek专属 4680

Windows服务程序与SOCKET服务器联合应用时客户端遇到的SOCKET:10060错小结

Windows服务程序与SOCKET服务器联合应用时客户端遇到的SOCKET:10060错小结1、问题描述    2009年9月份创建一个服务程序携带SOCKET服务器的应用模块,同时创建了一个SOCKET客户端程序,服务器与客户端同在一个机器时,连接正常,(服务器和客户端均使用双网卡),一旦客户与服务器不在同一机器时,客户连接服务程序+SOCKET模块时,客户端调用connect时就会提

PerfectToday的专栏 3895

用Socket实现聊天小程序

最近在学习网络编程,发现也并没有想象中的那么难。以前总是有意无意听身边朋友在谈论多线程、Socket网络编程等等,由于对网络编程一无所知,所以给我一种“应该很难”的错觉。       一台计算机和另一台计算机是如何通过网络互相通信、传递数据的?  HTTP协议、TCP/IP、UDP到底是什么玩意?    进程和线程有什么区别?      IP地址、端口又是什么?      大名鼎鼎的Socket是用来干嘛的?       这些问题都是以前最困扰我的,这两天终于给弄称敨了。在这里简单巩固下,如果你也想知道这些

civvy999的专栏 3008

JavaSwing的Socket编程小结

JavaSwing的Socket编程小结

MrYangLL 1155
上一篇: 好几天没有来优快云了,突然发现可以激活自己的BLOG!开心中!
下一篇: 人生必看的五篇文章
btlfe
博客等级 码龄24年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值