当前位置: 首页 > news >正文

哈尔滨的网站设计网页设计与制作总结报告

哈尔滨的网站设计,网页设计与制作总结报告,网址大全分类之一览表大全网,长白山网站学做管理平台C语言实现windows环境下Socket编程TCP/IP协议 主要是记录解决一些在我本地编译运行时出现的问题connect #xff1a;No error关于头文件关于stray /xxx和socket#xff1a;No error问题千万记得是服务器先启动哦#xff0c;客户端后启动下面附上我改好的代码 主要是记录解决… C语言实现windows环境下Socket编程TCP/IP协议 主要是记录解决一些在我本地编译运行时出现的问题connect No error关于头文件关于stray /xxx和socketNo error问题千万记得是服务器先启动哦客户端后启动下面附上我改好的代码 主要是记录解决一些在我本地编译运行时出现的问题 代码是别人的问题是我的。顺便记录一下遇见的各种问题和我的解决办法。 connect No error 可能的解决方案 1、服务端和客户端不在一个局域网可以开热点这样就在了。然后ipconfig查看IP地址就ok了。至于怎么查看在不在就ping一下对方就好了。 2、一个局域网下也ping不通看看自己和对方的防火墙有没有关有些时候不关就ping不通。 关于头文件 1、#include sys/types.h、#include sys/socket.h、#include netinet/in.h、#include arpa/inet.h 这几个东西总是找不到后面百度说是因为这是在linux系统下的库在windows就不行在windows里面用下面的头文件替代 #include winsock2.h #pragma comment(lib,“ws2_32.lib”) #include Ws2tcpip.h关于stray /xxx和socketNo error问题 搜集到的问题解释是因为没有初始化socket。 在建立套接字前加以下代码即可 WSADATA wsaData; if(WSAStartup(MAKEWORD(2,2),wsaData)!0){perror(WSADATA失败); }小tip如果直接复制进你的代码还出现报错貌似是格式问题可以尝试手敲上述代码可解决。 千万记得是服务器先启动哦客户端后启动 下面附上我改好的代码 参考博客C语言实现TCP通信 我改的代码 服务端. #include sys/stat.h#include fcntl.h#include errno.h#include winsock2.h #pragma comment(lib,“ws2_32.lib”)#include sys/types.h#include Ws2tcpip.h#include stdio.h#include string.h#include stdlib.h#include unistd.h#define SERVER_PORT 6666/* 监听后一直处于accept阻塞状态 直到有客户端连接 当客户端如数quit后断开与客户端的连接 */int main(){//调用socket函数返回的文件描述符int serverSocket;//声明两个套接字sockaddr_in结构体变量分别表示客户端和服务器struct sockaddr_in server_addr;struct sockaddr_in clientAddr;int addr_len sizeof(clientAddr);int client;char buffer[200];int iDataNum;//socket函数失败返回-1//int socket(int domain, int type, int protocol);//第一个参数表示使用的地址类型一般都是ipv4AF_INET//第二个参数表示套接字类型tcp面向连接的稳定数据传输SOCK_STREAM//第三个参数设置为0WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2),wsaData)!0){perror(WSADATA失败);}if((serverSocket socket(AF_INET, SOCK_STREAM, 0)) 0){perror(socket);return 1;}bzero(server_addr, sizeof(server_addr));//初始化服务器端的套接字并用htons和htonl将端口和地址转成网络字节序server_addr.sin_family AF_INET;server_addr.sin_port htons(SERVER_PORT);//ip可是是本服务器的ip也可以用宏INADDR_ANY代替代表0.0.0.0表明所有地址server_addr.sin_addr.s_addr htonl(INADDR_ANY);//对于bindaccept之类的函数里面套接字参数都是需要强制转换成(struct sockaddr *)//bind三个参数服务器端的套接字的文件描述符if(bind(serverSocket, (struct sockaddr *)server_addr, sizeof(server_addr)) 0){perror(connect);return 1;}//设置服务器上的socket为监听状态if(listen(serverSocket, 5) 0){perror(listen);return 1;}while(1){printf(监听端口: %d\n, SERVER_PORT);//调用accept函数后会进入阻塞状态//accept返回一个套接字的文件描述符这样服务器端便有两个套接字的文件描述符//serverSocket和client。//serverSocket仍然继续在监听状态client则负责接收和发送数据//clientAddr是一个传出参数accept返回时传出客户端的地址和端口号//addr_len是一个传入-传出参数传入的是调用者提供的缓冲区的clientAddr的长度以避免缓冲区溢出。//传出的是客户端地址结构体的实际长度。//出错返回-1client accept(serverSocket, (struct sockaddr*)clientAddr, (socklen_t*)addr_len);if(client 0){perror(accept);continue;}printf(等待消息...\n);//inet_ntoa ip地址转换函数将网络字节序IP转换为点分十进制IP//表达式char *inet_ntoa (struct in_addr);printf(IP is %s\n, inet_ntoa(clientAddr.sin_addr));printf(Port is %d\n, htons(clientAddr.sin_port));while(1){printf(读取消息:);buffer[0] \0;iDataNum recv(client, buffer, 1024, 0);if(iDataNum 0){perror(recv null);continue;}buffer[iDataNum] \0;if(strcmp(buffer, quit) 0)break;printf(%s\n, buffer);printf(发送消息:);scanf(%s, buffer);printf(\n);send(client, buffer, strlen(buffer), 0);if(strcmp(buffer, quit) 0)break;}}close(serverSocket);return 0; } 我改的代码 客户端. #include sys/stat.h#include fcntl.h#include errno.h#include winsock2.h #pragma comment(lib,“ws2_32.lib”)#include sys/types.h#include Ws2tcpip.h#include stdio.h#include string.h#include stdlib.h#include unistd.h#define SERVER_PORT 6666/* 连接到服务器后会不停循环等待输入 输入quit后断开与服务器的连接 */int main(){//客户端只需要一个套接字文件描述符用于和服务器通信WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2),wsaData)!0){perror(WSADATA失败);}int clientSocket;//描述服务器的socketstruct sockaddr_in serverAddr;char sendbuf[200];char recvbuf[200];int iDataNum;if((clientSocket socket(AF_INET, SOCK_STREAM, 0)) 0){perror(socket);return 1;}serverAddr.sin_family AF_INET;serverAddr.sin_port htons(SERVER_PORT);//指定服务器端的ip本地测试127.0.0.1//inet_addr()函数将点分十进制IP转换成网络字节序IPserverAddr.sin_addr.s_addr inet_addr(服务端IP地址);if(connect(clientSocket, (struct sockaddr *)serverAddr, sizeof(serverAddr)) 0){perror(connect);return 1;}printf(连接到主机...\n);while(1){printf(发送消息:);scanf(%s, sendbuf);printf(\n);send(clientSocket, sendbuf, strlen(sendbuf), 0);if(strcmp(sendbuf, quit) 0)break;printf(读取消息:);recvbuf[0] \0;iDataNum recv(clientSocket, recvbuf, 200, 0);recvbuf[iDataNum] \0;printf(%s\n, recvbuf);}close(clientSocket);return 0;}
http://www.pierceye.com/news/185987/

相关文章:

  • asp三层架构做网站网站开发前端基础
  • 医院网站建设方案策划书把网站做成app的软件下载
  • 网站建设实践报告3000字wordpress消息提示插件
  • 网站制作的评价标准做网站后台需要什么
  • 学院网站建设服务宗旨实惠的网站建设产品
  • 网站改名 备案影视制作
  • 网站开发亿码酷技术网站建设选谋者
  • 智能家居网站模板怎样做网站标题优化
  • 深圳制作网站制作公司哪家好最简洁 wordpress主题
  • 重庆忠县网站建设公司推荐国内公关公司
  • 给彩票网站做代理违法吗wordpress文章与页面关联
  • 网站标题加后缀模拟ip访问网站
  • 临清网站建设费用什么是网络营销的基础
  • 街道办的网站由谁做的企业首次建设网站的策划流程
  • 优化大师免费版下载一键优化下载安装
  • 网站建设近五年出版的书籍甘肃省工程建设信息官方网站
  • 杭州网站现场备案项目营销策划方案
  • 网站打包成app软件php网站 上传
  • 行业网站建设策划方案系部网站开发计划书
  • 建设部网站投诉核查做网站一般几个人
  • 360网站推广官网网址怎样在网站做咨询医生挣钱
  • 重庆市建设银行网站一站式网站建设有哪些
  • 自学设计软件的免费网站免费ppt模板简约
  • 申请个人网站怎么申请网站类型有哪些
  • 做网站推广托管注意哪个网站做推广好
  • 大竹网站建设泗阳城乡建设局网站
  • 山东省住房和城乡建设厅服务网站做网站的注意点
  • 网站排名优化软件江西网站备案要求
  • 桐柏县建设局网站邢台建设局网站
  • 网站域名变更怎么查英国做网站的人