answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Effectus [21]
2 years ago
11

In this assignment, you are provided with almost-working code that establishes a TCP socket connection over the INET domain (tho

ugh for this assignment you should run and test your client-server code on the same machine). What is missing are the actual parameters for each of the four connection establishment socket APIs on the server and the two connection establishment socket APIs on the client (you will see a ? where the function parameters should be). Here are some identifying characteristics about the sockets you will be creating: • Use the INET domain for the socket type. • Use TCP sockets. • Use a backlog of 10 partially completed connections for the kernel to queue. Your goal for the first part of this assignment is to fill in the socket APIs with their needed parameters, but you should not add any new lines of code (until told to do so) as all of the needed supporting information such as variable declarations and initializations has already been provided. Use what is given to you, but do not change the intent of the program. If completed successfully, you will see the message "Server Message: SUCCESS" on the client side, but nothing on the server-side (although the server-side should still be running). The client-side only runs once while the server-side runs indefinitely, so you can run the client multiple times. To quit the server-side program, you may use CTRL-C (i.e., ^C). Go ahead and stop the server-side socket program now and then attempt to run the server-side socket program again. Does it work? Or does it give you an error? Knowing why you are getting this error is important! Normally, we would call unlink() to delete the socket "file", but this only works on UNIX domain sockets, not the INET sockets that we are using. For INET sockets, there is no file system token representing them, so we need to set a socket option to re-use the address as follows: int on = 1; setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); Now, enter the above two lines of code just before where the error is occurring. Then recompile and run your socket program again. Hopefully, you will no longer get these same errors as before. Make sure your client-server socket program works as expected and then submit both code files. 2 REQUIREMENTS: • No comments are required for this recitation assignment, except for your name at the top of the program. • Your program should have two components named "rec08svr.c" and "rec08cli.c", without the quotes, for the server and client code, respectively. • Your program will be graded based largely on whether it works correctly on the CSE machines (e.g., cse01, cse02, …, cse06), so you should make sure that your program compiles and runs on a CSE machine. • Although this assignment is to be submitted individually (i.e., each student will submit his/her own source code),
rec09svr.c

// compile: gcc rec09svr.c -o rec09svr

// usage : ./rec09svr port

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[])

{

int listenfd = 0, connfd = 0, cli_size, portno;

struct sockaddr_in serv_addr, cli_addr;

char sendBuff[1025];

if ((listenfd = socket( ? )) == -1)

{

printf("socket error\n");

exit(EXIT_FAILURE);

}

memset(&serv_addr, '0', sizeof(serv_addr));

memset(sendBuff, '0', sizeof(sendBuff));

serv_addr.sin_family = AF_INET;

serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);

portno = atoi(argv[1]);

serv_addr.sin_port = htons(portno);

if (bind( ? ) == -1)

{

printf("bind error\n");

exit(EXIT_FAILURE);

}

if (listen( ? ) == -1)

{

printf("listen error\n");

exit(EXIT_FAILURE);

}

while (1)

{

cli_size = sizeof(cli_addr);

if ((connfd = accept( ? )) == -1)

{

printf("accept error\n");

exit(EXIT_FAILURE);

}

strcpy(sendBuff, "Server Message: SUCCESS\n");

write(connfd, sendBuff, strlen(sendBuff));

close(connfd);

sleep(1);

}

return 0;

}

the second one

rec09cli.c

// compile: gcc rec09cli.c -o rec09cli

// usage : ./rec09cli port

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[])

{

int sockfd = 0, n = 0, portno;

char recvBuff[1025];

struct sockaddr_in serv_addr;

memset(recvBuff, '0', sizeof(recvBuff));

if ((sockfd = socket( ? )) < 0)

{

printf("socket error\n");

exit(EXIT_FAILURE);

}

serv_addr.sin_family = AF_INET;

portno = atoi(argv[1]);

serv_addr.sin_port = htons(portno);

serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

if (connect( ? ) < 0)

{

printf("connect error\n");

exit(EXIT_FAILURE);

}

while ((n = read(sockfd, recvBuff, sizeof(recvBuff)-1)) > 0)

{

recvBuff[n] = 0;

if (fputs(recvBuff, stdout) == EOF)

{

printf("fputs error\n");

}

}

if (n < 0)

{

printf("read error\n");

}

return 0;

}
Computers and Technology
1 answer:
Scrat [10]2 years ago
3 0
Holy copy and paste that was used here
You might be interested in
3.A customer has a system with a Gigabyte B450 Aorus Pro motherboard. He wants to upgrade the processor from the AMD Athlon X4 9
Burka [1]

Answer:

The upgrade is possible and it will yield a remarkable  increase in performance

Explanation:

It is a newer product, there is tendency of having a better application compatibility/performance

It has much higher multi threaded performance which is around 522% higher. This allows for higher performance in professional applications like encoding and heavy multitasking compared to the previous.

When considering gaming, it has higher performance compared to the previous.

5 0
2 years ago
​<br><br> Access from and output to the register is slow true false​
Nataly_w [17]

Answer:

false

Explanation:

it depends most of time so false

4 0
2 years ago
An administrator wants to create four subnetworks from the network address 192.168.1.0/24. what is the network address and subne
Vitek1552 [10]
<span>There is a total of 32 bits in </span>IPv4 address space. In this case we have /24, which means <span>that 24 bits are contained in the network. So, the </span><span>
subnetwork  is 192.168.1.64
subnet mask 255.255.255.192</span>
8 0
2 years ago
"Simon Says" is a memory game where "Simon" outputs a sequence of 10 characters (R, G, B, Y) and the user must repeat the sequen
m_a_m_a [10]

Answer:

#include <iostream>  // includes input output functions

#include <string> // used for string functions

using namespace std;   // identifies objects like cout , cin

int main() {  // body of the main function

int index;   // index position of the elements

simonPattern = "RRGBRYYBGY";   //stores simon pattern

userPattern = "RRGBBRYBGY";   //stores user pattern

int userScore = 0;  // used to store the user score

// loop compares characters of user and simon patterns

for ( index = 0; userPattern[index] == simonPattern[index]; ++index) {

     userScore = userScore +1; // adds to the user score

     if (userPattern[index] != simonPattern[index]){

//if user and simon pattern do not match

        break;      }   } // breaks the loop

cout << "userScore is  " << userScore; // prints the user score

Explanation:

The program compares the user pattern to simon pattern character by character and keeps adding one to the user score if the characters of both simon and user patterns match. The loop breaks if the character of user pattern does not match with that of simon matter. At the end the calculated user score is displayed in the output.

3 0
2 years ago
You are an ISP. For the Address Block 195.200.0.0/16 a. If you have 320 Customers that need 128 addresses/customer - will there
12345 [234]

Answer:

a. The network will not satisfy the customers because the required addresses is 128 but what can be offered is 126.

b. 195.200.0.0/22

Explanation:

195.200.0.0/16

The number of bits to give 512 is 9

2^9=512

2^8=256 which is not up to our expected 320 customers that requires a network ip

Note we have to use a bit number that is equal or higher than our required number of networks.

The number of host per each subnet of the network (195.200.0.0/25) is (2^7)-2= 128-2=126

The network will not satisfy the customers because the required addresses is 128 but what can be offered is 126.

b. 64 customers requires  6 bits to be taken from the host bit to the network bit

i.e 2^6 = 64

195.200.0.0/22

The number of host per each subnet of the network (195.200.0.0/22) is (2^10)-2=1024 - 2 = 1022 hosts per subnet

This network meet the requirement " 64 customers want 128 addresses/customer "

5 0
2 years ago
Other questions:
  • When a button is selected, the computer processes the code contained in the buttons ____ event procedure?
    12·1 answer
  • Which feature of Badoo helped members make their profile more prominent?
    14·1 answer
  • Carrie works on a help desk and is assigned a ticket that was automatically generated by a server because of an error. The error
    14·2 answers
  • Your reputation and credibility will be immediately destroyed if your website contains?
    8·2 answers
  • Instructions:
    14·1 answer
  • What three requirements are defined by the protocols used in network communications to allow message transmission across a netwo
    11·1 answer
  • PC’s &amp; More has shifted to sales and service of laptops and PCs, where it has the potential to triple the number of its cust
    14·1 answer
  • 4. When emergency changes have to be made to systems, the system software may have to be modified before changes to the requirem
    13·1 answer
  • 5.14 ◆ Write a version of the inner product procedure described in Problem 5.13 that uses 6 × 1 loop unrolling. For x86-64, our
    8·1 answer
  • Select the described workplace culture from the drop-down menu.
    9·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!