c socket编程(C语言编程socket有个客服端和服务端怎么建文件并且运行)
本文目录
C语言编程socket有个客服端和服务端怎么建文件并且运行
网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。下面用Socket实现一个windows下的c语言socket通信例子,这里我们客户端传递一个字符串,服务器端进行接收。【服务器端】#include “stdafx.h“#include 《stdio.h》#include 《winsock2.h》#include 《winsock2.h》#define SERVER_PORT 5208 //侦听端口void main(){WORD wVersionRequested;WSADATA wsaData;int ret, nLeft, length;SOCKET sListen, sServer; //侦听套接字,连接套接字struct sockaddr_in saServer, saClient; //地址信息 char *ptr;//用于遍历信息的指针 //WinSock初始化wVersionRequested=MAKEWORD(2, 2); //希望使用的WinSock DLL 的版本ret=WSAStartup(wVersionRequested, &wsaData);if(ret!=0){printf(“WSAStartup() failed!\n“);return;}//创建Socket,使用TCP协议sListen=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (sListen == INVALID_SOCKET){WSACleanup();printf(“socket() faild!\n“);return;}//构建本地地址信息saServer.sin_family = AF_INET; //地址家族saServer.sin_port = htons(SERVER_PORT); //注意转化为网络字节序saServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //使用INADDR_ANY 指示任意地址//绑定ret = bind(sListen, (struct sockaddr *)&saServer, sizeof(saServer));if (ret == SOCKET_ERROR){printf(“bind() faild! code:%d\n“, WSAGetLastError());closesocket(sListen); //关闭套接字WSACleanup();return;}//侦听连接请求ret = listen(sListen, 5);if (ret == SOCKET_ERROR){printf(“listen() faild! code:%d\n“, WSAGetLastError());closesocket(sListen); //关闭套接字return;}printf(“Waiting for client connecting!\n“);printf(“Tips: Ctrl+c to quit!\n“);//阻塞等待接受客户端连接while(1)//循环监听客户端,永远不停止,所以,在本项目中,我们没有心跳包。{length = sizeof(saClient);sServer = accept(sListen, (struct sockaddr *)&saClient, &length);if (sServer == INVALID_SOCKET){printf(“accept() faild! code:%d\n“, WSAGetLastError());closesocket(sListen); //关闭套接字WSACleanup();return;} char receiveMessage;nLeft = sizeof(receiveMessage);ptr = (char *)&receiveMessagewhile(nLeft》0){//接收数据ret = recv(sServer, ptr, 5000, 0);if (ret == SOCKET_ERROR){printf(“recv() failed!\n“);return;}if (ret == 0) //客户端已经关闭连接{printf(“Client has closed the connection\n“);break;}nLeft -= ret;ptr += ret;} printf(“receive message:%s\n“, receiveMessage);//打印我们接收到的消息。}// closesocket(sListen);// closesocket(sServer);// WSACleanup();}【客户端】#include “stdafx.h“#include 《stdio.h》#include 《stdlib.h》#include 《winsock2.h》#define SERVER_PORT 5208 //侦听端口void main()
C语言socket编程问题 急急急
首先要写个什么都不干的c/s程序 s端: int main(void) { int sockfd, confd; struct sockaddr_in ser, cli; int len; sockfd = socket(PF_INET, SOCK_STREAM, 0); bzero(ser, sizeof(ser)); ser.sin_family = PF_INET; ser.sin_port = htons(8080); ser.sin_addr.s_addr = htonl(INADDR_ANY);//任何ip主机都接收 bind(sockfd, (struct sockaddr *)&ser, sizeof(ser));//绑定套接字 listen(scokfd, 20); printf(“receive message..........\n“); while(1) { len = sizeof(cil); confd = accept(sockfd, (struct sockaddr *)&cli, &len);//confd用于处理网络连接 read(); write(); close(confd); } return 0; } ------------------------------------------------------------------ c端 main() { int sockfd; struct sockaddr_indest_addr; sockfd = socket(PF_INET,SOCK_STREAM,0); dest_addr.sin_family=PF_INET; dest_addr.sin_port=htons(8080);//必须一样,要问为什么自己看端口号是干什么用的 dest_addr.sin_addr.s_addr=htonl(主机ip); connect(sockfd,(structsockaddr*)&dest_addr,sizeof(struct sockaddr)); while(1) { write(); read(); if()break;} close();} ------------------------------------------------------------- 框架我给你搭好了。 中间部分由你自己回答。 记住传送文件的时候,同步很重要。
C语言socket编程要怎么实现服务器可以发消息给客户端
先要理解socket是什么?简单的说socket是一个全双工的通信通道,即使用TCP或者UDP通信时均可以在发送消息的同时接受消息,它不区分是否是服务器。根据这个概念你的问题就很好回答。》当客户端与服务器连接后。有什么方法使服务器可以随时随地发消息给客户端?》我现在只能。客户端发个消息给服务器。服务器才能发个消息给客户端。也就是说客户端不发消息。服务器就没法发消息给客户端。》求大牛给个思路。当连接后。客户端与服务器双方可以随时随地通信!使用多线程,一个维持接受逻辑,一个维持送信逻辑,即可完成同时接受及发送。客户端及服务器端均做上述设置。而你的做法是在一个线程中执行接受与送信,因此只能按照顺序逻辑完成接收与送信。关键点是多线程。
更多文章:

include是什么词性(including, include 两个单词的意思,词性,用法,分别是什么)
2025年4月10日 01:40

outlined(transistor+outline是什么意思)
2025年2月12日 20:10

免费音效素材网站(请大家提供几个好的CG素材网站和音效网站!谢谢)
2025年4月6日 09:40

r语言字符转化成数值型(R语言怎么将数据框中的多列字符型转换为数值型)
2025年2月11日 09:10

workbench教程(ansys workbench基础教程与实例详解(第二版) 浦广益)
2025年2月10日 02:10

ruby on rails(学习Ruby on Rails需要什么基础)
2025年3月11日 13:00

donated是什么意思(contribute to归因于什么)
2025年2月16日 03:50

cms的全称和中文意思急用求大神解答?CMS是什么意思,中文是啥
2025年3月31日 19:30